(* Specifications: *)
Lemma Fix_F_inv : forall (x:A) (r s:Acc R x), EQ (Fix_F P F r) (Fix_F P F s).
Lemma Fix_eq : forall x:A, EQ (Fix Rwf P F x) (F (fun (y:A) (p:R y x) => Fix Rwf P F y)).
Lemma sound_andp_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R: SS.Relation (Kworlds M)} {SM: Semantics L MD} {tpSM: TrivialPropositionalSemantics L MD SM} {stableSM: SemanticStable L MD M SM}: forall x y: expr, semantic_stable x -> semantic_stable y -> semantic_stable (x && y).
Lemma sound_orp_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R: SS.Relation (Kworlds M)} {SM: Semantics L MD} {tpSM: TrivialPropositionalSemantics L MD SM} {stableSM: SemanticStable L MD M SM}: forall x y: expr, semantic_stable x -> semantic_stable y -> semantic_stable (x || y).
Lemma sound_falsep_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R: SS.Relation (Kworlds M)} {SM: Semantics L MD} {tpSM: TrivialPropositionalSemantics L MD SM} {stableSM: SemanticStable L MD M SM}: semantic_stable falsep.
Lemma sound_boxp_stable {L: Language} {minL: MinimunLanguage L} {mL: ModalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R1: KM.Relation (Kworlds M)} {R2: SS.Relation (Kworlds M)} {R1_bis: Bisimulation SS.Krelation KM.Krelation} {SM: Semantics L MD} {kmSM: KripkeModalSemantics L MD M SM} {stableSM: SemanticStable L MD M SM}: forall x: expr, semantic_stable x -> semantic_stable (boxp x).
Lemma sound_andp_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R1: KI.Relation (Kworlds M)} {R2: SS.Relation (Kworlds M)} {SM: Semantics L MD} {kiSM: KripkeIntuitionisticSemantics L MD M SM} {kminSM: KripkeMinimunSemantics L MD M SM} {kpSM: KripkePropositionalSemantics L MD M SM} {stableSM: SemanticStable L MD M SM}: forall x y: expr, semantic_stable x -> semantic_stable y -> semantic_stable (x && y).
Lemma sound_orp_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R1: KI.Relation (Kworlds M)} {R2: SS.Relation (Kworlds M)} {SM: Semantics L MD} {kiSM: KripkeIntuitionisticSemantics L MD M SM} {kminSM: KripkeMinimunSemantics L MD M SM} {kpSM: KripkePropositionalSemantics L MD M SM} {stableSM: SemanticStable L MD M SM}: forall x y: expr, semantic_stable x -> semantic_stable y -> semantic_stable (x || y).
Lemma sound_falsep_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R1: KI.Relation (Kworlds M)} {R2: SS.Relation (Kworlds M)} {SM: Semantics L MD} {kiSM: KripkeIntuitionisticSemantics L MD M SM} {kminSM: KripkeMinimunSemantics L MD M SM} {kpSM: KripkePropositionalSemantics L MD M SM} {stableSM: SemanticStable L MD M SM}: semantic_stable falsep.
Lemma sound_boxp_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {mL: ModalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R1: KI.Relation (Kworlds M)} {R2: KM.Relation (Kworlds M)} {R3: SS.Relation (Kworlds M)} {R2_bis: Bisimulation SS.Krelation KM.Krelation} {SM: Semantics L MD} {fmSM: FlatModalSemantics L MD M SM} {stableSM: SemanticStable L MD M SM}: forall x: expr, semantic_stable x -> semantic_stable (boxp x).
Lemma sound_sepcon_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {sL: SeparationLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R1: KI.Relation (Kworlds M)} {R2: SS.Relation (Kworlds M)} {J: Join (Kworlds M)} {SAbis: SeparationAlgebraBisStable (Kworlds M)} {SM: Semantics L MD} {fsSM: SeparatingSemantics L MD M SM} {stableSM: SemanticStable L MD M SM}: forall x y: expr, semantic_stable x -> semantic_stable y -> semantic_stable (x * y).
Lemma Lindenbaum_preserves_context_sepcon_included_l: forall Phi2 Psi, Lindenbaum_preserves (context_sepcon_included_l Phi2 Psi).
Lemma Lindenbaum_context_sepcon_included_l_ensures_derivable_closed: forall Phi Psi, Lindenbaum_ensures (context_sepcon_included_l Phi Psi) derivable_closed.
Lemma Lindenbaum_context_sepcon_included_l_ensures_orp_witnessed: forall Phi Psi (DC: derivable_closed Psi) (OW: orp_witnessed Psi), Lindenbaum_ensures (context_sepcon_included_l Phi Psi) orp_witnessed.
Lemma Lindenbaum_context_sepcon_included_l_ensures_consistent: forall Phi Psi (CONSI: consistent Psi), Lindenbaum_ensures (context_sepcon_included_l Phi Psi) consistent.
Lemma Included_derivable: forall (Phi: context), Included _ Phi (derivable Phi).
Lemma derivable_mono: forall (Phi Psi: context), Included _ Phi Psi -> Included _ (derivable Phi) (derivable Psi).
Lemma derivable_derivable: forall (Phi: context), Included _ (derivable (derivable Phi)) (derivable Phi).
Lemma derivable_derivable_Same_set: forall (Phi: context), Same_set _ (derivable (derivable Phi)) (derivable Phi).
Lemma general_completeness: strongly_complete Gamma SM (KripkeModelClass _ kMC).
Lemma maximal_consistent_spec : forall Phi, maximal consistent Phi <-> consistent Phi /\ forall x, consistent (Union _ Phi (Singleton _ x)) -> Phi x.
Lemma maximal_consistent_derivable_closed: forall (Phi: context), maximal consistent Phi -> derivable_closed Phi.
Lemma Lindenbaum_for_derivable_closed: forall P, Lindenbaum_preserves P -> derivable_subset_preserved P -> Lindenbaum_ensures P derivable_closed.
Lemma DeductionWeaken_DerivableFiniteWitnessed_2_ContextualDerivableFiniteWitnessed: DeductionWeaken L Gamma -> DerivableFiniteWitnessed L Gamma -> ContextualDerivableFiniteWitnessed L Gamma.
Lemma DeductionWeaken_ContextualDerivableFiniteWitnessed_2_DerivableFiniteWitnessed: DeductionWeaken L Gamma -> ContextualDerivableFiniteWitnessed L Gamma -> DerivableFiniteWitnessed L Gamma.
Lemma DeductionSubst_2_DeductionSubst1: DeductionSubst L Gamma -> DeductionSubst1 L Gamma.
Lemma DeductionWeaken_ContextualDerivableFiniteWitnessed_DeductionSubst1_2_DeductionSubst: DeductionWeaken L Gamma -> ContextualDerivableFiniteWitnessed L Gamma -> DeductionSubst1 L Gamma -> DeductionSubst L Gamma.
Lemma DerivableRefl_DeductionWeaken_2_DerivableAssu: DerivableRefl L Gamma -> DeductionWeaken L Gamma -> DerivableAssu L Gamma.
Lemma DerivableAssu_2_DerivableRefl: DerivableAssu L Gamma -> DerivableRefl L Gamma.
Lemma Full_set_spec: forall A (v: A), Full_set A v <-> True.
Lemma Empty_set_spec: forall A (v: A), Empty_set A v <-> False.
Lemma Intersection_spec: forall A (v: A) P Q, Intersection _ P Q v <-> P v /\ Q v.
Lemma Union_spec: forall A (v: A) P Q, Union _ P Q v <-> P v \/ Q v.
Lemma Disjoint_spec: forall A P Q, Disjoint A P Q <-> (forall x, P x -> Q x -> False).
Lemma Singleton_spec: forall U x y, (Singleton U x) y <-> x = y.
Lemma Included_Full_set: forall A P, Included A P (Full_set A).
Lemma Intersection_Complement: forall A (P Q: Ensemble A), Same_set A (Intersection A (Complement A P) (Complement A Q)) (Complement A (Union A P Q)).
Lemma Union_iff: forall U A B x, Ensembles.In U (Union U A B) x <-> Ensembles.In U A x \/ Ensembles.In U B x.
Lemma Empty_set_iff: forall U x, Ensembles.In U (Empty_set U) x <-> False.
Lemma Singleton_iff: forall U x y, Ensembles.In U (Singleton U x) y <-> x = y.
Lemma Same_set_refl: forall A (S : Ensemble A), Same_set S S.
Lemma Same_set_sym: forall A (S1 S2 : Ensemble A), Same_set S1 S2 -> Same_set S2 S1.
Lemma Same_set_trans: forall A (S1 S2 S3: Ensemble A), Same_set S1 S2 -> Same_set S2 S3 -> Same_set S1 S3.
Lemma prop_ext: prop_extensionality.
Lemma fin_subset_match {A B: Type} {P: A -> B -> Prop}: forall (X: Ensemble A) (Y: Ensemble B), (forall x, X x -> exists y, P x y /\ Y y) -> forall xs, Forall (fun x => X x) xs -> exists ys, Forall2 P xs ys /\ Forall (fun y => Y y) ys.
Lemma Forall2_lr_rev {A B: Type} {P: A -> B -> Prop}: forall xs ys, Forall2 (fun y x => P x y) ys xs -> Forall2 P xs ys.
Lemma Forall_app_iff: forall {A : Type} (P : A -> Prop) (l1 l2 : list A), Forall P (l1 ++ l2) <-> Forall P l1 /\ Forall P l2.
Lemma cut2_exists {A: Type}: forall (h: stream A) (P: A -> Prop), (exists h1 h2, is_fin_stream h1 /\ h = stream_app h1 h2 /\ (forall n a, h1 n = Some a -> ~ P a) /\ (exists a, h2 0 = Some a /\ P a)) \/ (forall n a, h n = Some a -> ~ P a).
Lemma cut_omega_exists {A: Type}: forall (h: stream A) (P: A -> Prop), (exists a, h 0 = Some a /\ P a) -> (exists hs, (forall n, is_fin_stream (hs n)) /\ h = stream_capp hs /\ (forall m n a, hs m (S n) = Some a -> ~ P a) /\ (forall n, exists a, hs n 0 = Some a /\ P a)) \/ (exists hs: list (stream A), (Forall is_fin_stream hs) /\ h = fold_right stream_app empty_stream hs /\ (Forall (fun h0: stream A => forall n a, h0 (S n) = Some a -> ~ P a) hs) /\ (Forall (fun h0: stream A => exists a, h0 0 = Some a /\ P a) hs)).
Lemma classical_canonical_ident {cpSC: ClassicalPropositionalSequentCalculus L Gamma} (AL_DC: at_least derivable_closed cP) (AL_OW: at_least orp_witnessed cP) (AL_CONSI: at_least consistent cP): IdentityKripkeIntuitionisticModel (Kworlds M).
Lemma GodelDummett_canonical_no_branch {SC: NormalSequentCalculus L Gamma} {minAX: MinimunAxiomatization L Gamma} {ipGamma: IntuitionisticPropositionalLogic L Gamma} {gdpGamma: GodelDummettPropositionalLogic L Gamma} (AL_DC: at_least derivable_closed cP) (AL_OW: at_least orp_witnessed cP): NoBranchKripkeIntuitionisticModel (Kworlds M).
Lemma DeMorgan_canonical_branch_join {SC: NormalSequentCalculus L Gamma} {AX: NormalAxiomatization L Gamma} {minAX: MinimunAxiomatization L Gamma} {ipGamma: IntuitionisticPropositionalLogic L Gamma} {dmpGamma: DeMorganPropositionalLogic L Gamma} (AL_DC: at_least derivable_closed cP) (AL_OW: at_least orp_witnessed cP) (AL_CONSI: at_least consistent cP) (LIN_CD: forall x, Lindenbaum_constructable (cannot_derive x) cP): BranchJoinKripkeIntuitionisticModel (Kworlds M).
Lemma general_completeness: strongly_complete Gamma SM (KripkeModelClass _ kMC).
Lemma maximal_consistent_orp_witnessed: forall (Phi: context), maximal consistent Phi -> orp_witnessed Phi.
Lemma MCS_andp_iff: forall (Phi: context), maximal consistent Phi -> (forall x y: expr, Phi (x && y) <-> (Phi x /\ Phi y)).
Lemma MCS_orp_iff: forall (Phi: context), maximal consistent Phi -> (forall x y: expr, Phi (x || y) <-> (Phi x \/ Phi y)).
Lemma MCS_negp_iff: forall (Phi: context), maximal consistent Phi -> (forall x: expr, Phi (~~ x) <-> ~ Phi x).
Lemma DDCS_MCS: forall (Phi: context), derivable_closed Phi -> orp_witnessed Phi -> consistent Phi -> maximal consistent Phi.
Lemma Lindenbaum_for_max_consistent: forall P, Lindenbaum_ensures P derivable_closed -> Lindenbaum_ensures P orp_witnessed -> Lindenbaum_ensures P consistent -> Lindenbaum_ensures P (maximal consistent).
Lemma Lindenbaum_cannot_derive_ensures_max_consistent {AX: NormalAxiomatization L Gamma}: forall x, Lindenbaum_ensures (cannot_derive x) (maximal consistent).
Lemma Lindenbaum_for_orp_witnessed: forall P, Lindenbaum_preserves P -> subset_preserved P -> context_orp_captured P -> Lindenbaum_ensures P derivable_closed -> Lindenbaum_ensures P orp_witnessed.
Lemma Lindenbaum_cannot_derive_ensures_orp_witnessed {AX: NormalAxiomatization L Gamma}: forall x, Lindenbaum_ensures (cannot_derive x) orp_witnessed.
Lemma Lindenbaum_for_consistent: forall P, Lindenbaum_preserves P -> at_least consistent P -> Lindenbaum_ensures P consistent.
Lemma Lindenbaum_cannot_derive_ensures_consistent {AX: NormalAxiomatization L Gamma}: forall x, Lindenbaum_ensures (cannot_derive x) consistent.
Lemma MakeSequentCalculus_GodelDummettPropositionalLogic {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {Gamma: ProofTheory L} {minAX: MinimunAxiomatization L Gamma} (minAX': MinimunAxiomatization L (Build_AxiomaticProofTheory (@provable L Gamma))) (ipGamma: IntuitionisticPropositionalLogic L Gamma) {ipGamma': IntuitionisticPropositionalLogic L (Build_AxiomaticProofTheory (@provable L Gamma))} {gdpGamma: GodelDummettPropositionalLogic L Gamma}: Typeclass_Rewrite (exist (fun X: Prop => X) (IntuitionisticPropositionalLogic L (Build_AxiomaticProofTheory (@provable L Gamma))) ipGamma' :: nil) -> forall (G: Prop) (l: list (sig (fun X: Prop => X))), (forall (gdpGamma: GodelDummettPropositionalLogic L (Build_AxiomaticProofTheory (@provable L Gamma))), OpaqueProp (Typeclass_Rewrite l -> G)) <-> OpaqueProp (Typeclass_Rewrite ((exist (fun X: Prop => X) (GodelDummettPropositionalLogic L Gamma) gdpGamma) :: l) -> G).
Lemma MakeSequentCalculus_DeMorganPropositionalLogic {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {Gamma: ProofTheory L} {minAX: MinimunAxiomatization L Gamma} (minAX': MinimunAxiomatization L (Build_AxiomaticProofTheory (@provable L Gamma))) (ipGamma: IntuitionisticPropositionalLogic L Gamma) {ipGamma': IntuitionisticPropositionalLogic L (Build_AxiomaticProofTheory (@provable L Gamma))} {dmpGamma: DeMorganPropositionalLogic L Gamma}: Typeclass_Rewrite (exist (fun X: Prop => X) (IntuitionisticPropositionalLogic L (Build_AxiomaticProofTheory (@provable L Gamma))) ipGamma' :: nil) -> forall (G: Prop) (l: list (sig (fun X: Prop => X))), (forall (dmpGamma: DeMorganPropositionalLogic L (Build_AxiomaticProofTheory (@provable L Gamma))), OpaqueProp (Typeclass_Rewrite l -> G)) <-> OpaqueProp (Typeclass_Rewrite ((exist (fun X: Prop => X) (DeMorganPropositionalLogic L Gamma) dmpGamma) :: l) -> G).
Lemma impp_andp_Adjoint: Adjointness L Gamma andp impp.
Lemma andp_Comm: Commutativity L Gamma andp.
Lemma andp_Mono: Monotonicity L Gamma andp.
Lemma andp_LU: LeftUnit L Gamma TT andp.
Lemma andp_RU: RightUnit L Gamma TT andp.
Lemma andp_Assoc: Associativity L Gamma andp.
Lemma SequentCalculus2Axiomatization_ipGamma: IntuitionisticPropositionalLogic L Gamma.
Lemma MakeAxiomatization_IntuitionisticPropositionalSequentCalculus {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {Gamma: ProofTheory L} {bSC: BasicSequentCalculus L Gamma} {minSC: MinimunSequentCalculus L Gamma} {minAX': MinimunAxiomatization L (Build_SequentCalculus (@derivable L Gamma))} (ipSC: IntuitionisticPropositionalSequentCalculus L Gamma): Typeclass_Rewrite ((exist (fun X: Prop => X) (MinimunAxiomatization L (Build_SequentCalculus (@derivable L Gamma))) minAX') :: nil) -> forall (G: Prop) (l: list (sig (fun X: Prop => X))), (forall (ipSC: IntuitionisticPropositionalSequentCalculus L (Build_SequentCalculus (@derivable L Gamma))) (ipGamma: IntuitionisticPropositionalLogic L (Build_SequentCalculus (@derivable L Gamma))), OpaqueProp (OpaqueProp (Typeclass_Rewrite l -> G))) <-> OpaqueProp (Typeclass_Rewrite ((exist (fun X: Prop => X) (IntuitionisticPropositionalSequentCalculus L Gamma) ipSC) :: l) -> G).
Lemma Axiomatization2SequentCalculus_ipSC {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {Gamma: ProofTheory L} {AX: NormalAxiomatization L Gamma} {minAX: MinimunAxiomatization L Gamma} {ipGamma: IntuitionisticPropositionalLogic L Gamma}: IntuitionisticPropositionalSequentCalculus L Gamma.
Lemma MakeSequentCalculus_IntuitionisticPropositionalLogic {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {Gamma: ProofTheory L} {minAX: MinimunAxiomatization L Gamma} (minAX': MinimunAxiomatization L (Build_AxiomaticProofTheory (@provable L Gamma))) (ipGamma: IntuitionisticPropositionalLogic L Gamma): Typeclass_Rewrite ((exist (fun X: Prop => X) (MinimunAxiomatization L (Build_AxiomaticProofTheory (@provable L Gamma))) minAX') :: nil) -> forall (G: Prop) (l: list (sig (fun X: Prop => X))), (forall (ipSC: IntuitionisticPropositionalSequentCalculus L (Build_AxiomaticProofTheory (@provable L Gamma))) (ipGamma: IntuitionisticPropositionalLogic L (Build_AxiomaticProofTheory (@provable L Gamma))), OpaqueProp (OpaqueProp (Typeclass_Rewrite l -> G))) <-> OpaqueProp (Typeclass_Rewrite ((exist (fun X: Prop => X) (IntuitionisticPropositionalLogic L Gamma) ipGamma) :: l) -> G).
Lemma Axiomatization2SequentCalculus_cpSC: ClassicalPropositionalSequentCalculus L Gamma.
Lemma MakeSequentCalculus_ClassicalPropositionalLogic: Typeclass_Rewrite (exist (fun X: Prop => X) (IntuitionisticPropositionalLogic L (Build_AxiomaticProofTheory (@provable L Gamma))) ipGamma' :: exist (fun X: Prop => X) (IntuitionisticPropositionalSequentCalculus L (Build_AxiomaticProofTheory (@provable L Gamma))) ipSC :: exist (fun X: Prop => X) (BasicSequentCalculus L (Build_AxiomaticProofTheory (@provable L Gamma))) bSC :: exist (fun X: Prop => X) (MinimunSequentCalculus L (Build_AxiomaticProofTheory (@provable L Gamma))) minSC :: nil) -> forall (G: Prop) (l: list (sig (fun X: Prop => X))), (forall (cpSC: ClassicalPropositionalSequentCalculus L (Build_AxiomaticProofTheory (@provable L Gamma))) (cpGamma: ClassicalPropositionalLogic L (Build_AxiomaticProofTheory (@provable L Gamma))), OpaqueProp (Typeclass_Rewrite l -> G)) <-> OpaqueProp (Typeclass_Rewrite ((exist (fun X: Prop => X) (ClassicalPropositionalLogic L Gamma) cpGamma) :: l) -> G).
Lemma SequentCalculus2Axiomatization_cpGamma: ClassicalPropositionalLogic L Gamma.
Lemma MakeAxiomatization_ClassicalPropositionalSequentCalculus: Typeclass_Rewrite (exist (fun X: Prop => X) (IntuitionisticPropositionalLogic L (Build_SequentCalculus (@derivable L Gamma))) ipGamma :: exist (fun X: Prop => X) (IntuitionisticPropositionalSequentCalculus L (Build_SequentCalculus (@derivable L Gamma))) ipSC' :: exist (fun X: Prop => X) (BasicSequentCalculus L (Build_SequentCalculus (@derivable L Gamma))) bSC' :: exist (fun X: Prop => X) (MinimunSequentCalculus L (Build_SequentCalculus (@derivable L Gamma))) minSC' :: nil) -> forall (G: Prop) (l: list (sig (fun X: Prop => X))), (forall (cpSC: ClassicalPropositionalSequentCalculus L (Build_SequentCalculus (@derivable L Gamma))) (cpGamma: ClassicalPropositionalLogic L (Build_SequentCalculus (@derivable L Gamma))), OpaqueProp (Typeclass_Rewrite l -> G)) <-> OpaqueProp (Typeclass_Rewrite ((exist (fun X: Prop => X) (ClassicalPropositionalSequentCalculus L Gamma) cpSC) :: l) -> G).
Theorem sound_classical_trivial: sound ProofTheories.ClassicalPropositionalLogic.G TrivialSemantics.SM (AllModel _).
Theorem sound_intuitionistic_Kripke_all: sound ProofTheories.IntuitionisticPropositionalLogic.G KripkeSemantics.SM (KripkeModelClass _ (Kmodel_Monotonic + Kmodel_PreOrder)).
Theorem sound_DeMorgan_Kripke_branch_join: sound ProofTheories.DeMorganPropositionalLogic.G KripkeSemantics.SM (KripkeModelClass _ (Kmodel_Monotonic + Kmodel_PreOrder + Kmodel_BranchJoin)).
Theorem sound_GodelDummett_Kripke_no_branch: sound ProofTheories.GodelDummettPropositionalLogic.G KripkeSemantics.SM (KripkeModelClass _ (Kmodel_Monotonic + Kmodel_PreOrder + Kmodel_NoBranch)).
Theorem sound_classical_Kripke_identity: sound ProofTheories.ClassicalPropositionalLogic.G KripkeSemantics.SM (KripkeModelClass _ (Kmodel_Monotonic + Kmodel_PreOrder + Kmodel_Identity)).
Lemma can_derive_finite_witnessed: forall x, finite_witnessed (can_derive x).
Lemma cannot_derive_finite_captured: forall x, finite_captured (cannot_derive x).
Lemma Lindenbaum_preserves_cannot_derive: forall x, Lindenbaum_preserves (cannot_derive x).
Lemma Lindenbaum_cannot_derive_ensures_derivable_closed: forall x, Lindenbaum_ensures (cannot_derive x) derivable_closed.
Lemma eqR_KripkeIntuitionistic: @Kripke.KripkeIntuitionisticSemantics L MD (unit_kMD _) tt eq SM.
Lemma Trivial2Kripke {tpSM: Trivial.TrivialMinimunSemantics L MD SM}: @Kripke.KripkeMinimunSemantics L minL MD (unit_kMD _) tt eq SM.
Lemma DeductionMP_DerivableAssu_DeductionWeaken_2_DeductionImpElim: DeductionMP L Gamma -> DerivableAssu L Gamma -> DeductionWeaken L Gamma -> DeductionImpElim L Gamma.
Lemma DeductionImpIntro_DeductionMP_2_DeductionSubst1: DeductionImpIntro L Gamma -> DeductionMP L Gamma -> DeductionSubst1 L Gamma.
Lemma DeductionImpElim_DeductionSubst1_2_DeductionMP: DeductionImpElim L Gamma -> DeductionSubst1 L Gamma -> DeductionMP L Gamma.
Lemma Adjoint2Mono: Monotonicity L Gamma prodp.
Lemma hoare_conjunction_partial_sound: forall c P1 P2 Q1 Q2, triple_partial_valid P1 c Q1 -> triple_partial_valid P2 c Q2 -> triple_partial_valid (P1 && P2) c (Q1 && Q2).
Lemma hoare_conjuntion_total_sound: forall c P1 P2 Q1 Q2, triple_total_valid P1 c Q1 -> triple_total_valid P2 c Q2 -> triple_total_valid (P1 && P2) c (Q1 && Q2).
Lemma hoare_disjunction_parial_sound: forall c P1 P2 Q1 Q2, triple_partial_valid P1 c Q1 -> triple_partial_valid P2 c Q2 -> triple_partial_valid (P1 || P2) c (Q1 || Q2).
Lemma hoare_disjunction_total_sound: forall c P1 P2 Q1 Q2, triple_total_valid P1 c Q1 -> triple_total_valid P2 c Q2 -> triple_total_valid (P1 || P2) c (Q1 || Q2).
Lemma hoare_frame_partial_sound: forall c P Q F, triple_partial_valid P c Q -> triple_partial_valid (P * F) c (Q * F).
Lemma hoare_frame_total_sound: forall c P Q F, triple_total_valid P c Q -> triple_total_valid (P * F) c (Q * F).
Lemma hoare_seq_partial_sound: forall c1 c2 P1 P2 P3, triple_partial_valid P1 c1 P2 -> triple_partial_valid P2 c2 P3 -> triple_partial_valid P1 (Ssequence c1 c2) P3.
Lemma hoare_seq_total_sound: forall c1 c2 P1 P2 P3, triple_total_valid P1 c1 P2 -> triple_total_valid P2 c2 P3 -> triple_total_valid P1 (Ssequence c1 c2) P3.
Lemma start_by_Aacq_or_Arel {Ac: Action} {Res: Resource} {Acr: Action_resource Ac Res} {nAcr: NormalAction_resource Ac Res}: forall r tr, start_by_Aacq r tr -> start_by_Arel r tr -> False.
Lemma start_by_Aacq_trace_acc_spec {state: Type} {Ac: Action} {Res: Resource} {J: Join state} {state_R: Relation state} {Acr: Action_resource Ac Res} {nAcr: NormalAction_resource Ac Res} {ac_sem: ActionInterpret (resources * state) Ac} {AIr: ActionInterpret_resource state Ac Res ac_sem}: forall (Inv: resource * (state -> Prop) -> Prop) (tr: trace) A1 A2 s1 s2, (forall r, start_by_Aacq r tr) -> @trace_access _ _ (ThreadLocal_ActionInterpret_resource _ Inv) tr (A1, s1) (Terminating (A2, s2)) -> A1 = A2.