Documentation

GL.Split.ProofTransformations

inductive CutPre.RuleApp {𝕏 : Split.Proof} (x : 𝕏.X) (τ : 𝕏.XSplitSequent) :
Instances For
    def CutPre.fₙ {𝕏 : Split.Proof} {x : 𝕏.X} {τ : 𝕏.XSplitSequent} :
    Equations
    Instances For
      theorem CutPre.fₙ_alternate {𝕏 : Split.Proof} {x : 𝕏.X} {τ : 𝕏.XSplitSequent} (r : RuleApp x τ) :
      fₙ r = match r with | RuleApp.pre y a => τ y | RuleApp.cutₗ Δ A => Δ | RuleApp.cutᵣ Δ A => Δ | RuleApp.wkₗ Δ A a => Δ \ {Sum.inl A} | RuleApp.wkᵣ Δ A a => Δ \ {Sum.inr A} | RuleApp.topₗ Δ a => Δ \ {Sum.inl } | RuleApp.topᵣ Δ a => Δ \ {Sum.inr } | RuleApp.axₗₗ Δ n a => Δ \ {Sum.inl (at n), Sum.inl (na n)} | RuleApp.axₗᵣ Δ n a => Δ \ {Sum.inl (at n), Sum.inr (na n)} | RuleApp.axᵣₗ Δ n a => Δ \ {Sum.inr (at n), Sum.inl (na n)} | RuleApp.axᵣᵣ Δ n a => Δ \ {Sum.inr (at n), Sum.inr (na n)} | RuleApp.andₗ Δ A B a => Δ \ {Sum.inl (A&B)} | RuleApp.andᵣ Δ A B a => Δ \ {Sum.inr (A&B)} | RuleApp.orₗ Δ A B a => Δ \ {Sum.inl (A v B)} | RuleApp.orᵣ Δ A B a => Δ \ {Sum.inr (A v B)} | RuleApp.boxₗ Δ A a => Δ \ {Sum.inl (A)} | RuleApp.boxᵣ Δ A a => Δ \ {Sum.inr (A)}
      def CutPre.T {𝕏 : Split.Proof} (x : 𝕏.X) (τ : 𝕏.XSplitSequent) :
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def CutPre.r {X : Type u} {𝕏 : Split.Proof} {x : 𝕏.X} {τ : 𝕏.XSplitSequent} (α : X(T x τ).obj X) :
        XRuleApp x τ
        Equations
        Instances For
          def CutPre.p {X : Type u} {𝕏 : Split.Proof} {x : 𝕏.X} {τ : 𝕏.XSplitSequent} (α : X(T x τ).obj X) :
          XList X
          Equations
          Instances For
            def CutPre.edge {X : Type u} {𝕏 : Split.Proof} {x : 𝕏.X} {τ : 𝕏.XSplitSequent} (α : X(T x τ).obj X) :
            X(y : X) → Prop
            Equations
            Instances For
              def CutPre.RuleApp.isBox {𝕏 : Split.Proof} {x : 𝕏.X} {τ : 𝕏.XSplitSequent} :
              RuleApp x τProp
              Equations
              Instances For
                def CutPre.RuleApp.isNonAxLeaf {𝕏 : Split.Proof} {x : 𝕏.X} {τ : 𝕏.XSplitSequent} :
                RuleApp x τProp
                Equations
                Instances For
                  structure CutPre.CutProofFromPremises {𝕏 : Split.Proof} (x : 𝕏.X) (τ : 𝕏.XSplitSequent) :
                  Instances For
                    def Split.CutPre.Proves {𝕏 : Proof} (x : 𝕏.X) {σ : 𝕏.XSplitSequent} (𝕐 : CutPre.CutProofFromPremises x σ) (Δ : SplitSequent) :
                    Equations
                    Instances For
                      def Split.ProofTransformationMap {𝕏 : Proof} {σ : 𝕏.XSplitSequent} (PartialProof : (x : 𝕏.X) → CutPre.CutProofFromPremises x σ) :
                      (y : 𝕏.X) × (PartialProof y).XSplitCut.T.obj ((y : 𝕏.X) × (PartialProof y).X)
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem Split.ProofTransformation_f {𝕏 : Proof} {σ : 𝕏.XSplitSequent} (PartialProof : (x : 𝕏.X) → CutPre.CutProofFromPremises x σ) (y : 𝕏.X) (z_in_Cy : (PartialProof y).X) :
                        SplitCut.f (SplitCut.r (ProofTransformationMap PartialProof) y, z_in_Cy) = CutPre.f (CutPre.r (PartialProof y).α z_in_Cy)
                        @[simp]
                        theorem Split.ProofTransformation_fₚ {𝕏 : Proof} {σ : 𝕏.XSplitSequent} (PartialProof : (x : 𝕏.X) → CutPre.CutProofFromPremises x σ) (y : 𝕏.X) (z_in_Cy : (PartialProof y).X) :
                        SplitCut.fₚ (SplitCut.r (ProofTransformationMap PartialProof) y, z_in_Cy) = CutPre.fₚ (CutPre.r (PartialProof y).α z_in_Cy)
                        @[simp]
                        theorem Split.ProofTransformation_fₙ {𝕏 : Proof} {σ : 𝕏.XSplitSequent} (PartialProof : (x : 𝕏.X) → CutPre.CutProofFromPremises x σ) (y : 𝕏.X) (z_in_Cy : (PartialProof y).X) :
                        SplitCut.fₙ (SplitCut.r (ProofTransformationMap PartialProof) y, z_in_Cy) = CutPre.fₙ (CutPre.r (PartialProof y).α z_in_Cy)
                        theorem Split.ProofTransformation_isBox {𝕏 : Proof} {σ : 𝕏.XSplitSequent} (PartialProof : (x : 𝕏.X) → CutPre.CutProofFromPremises x σ) (z_in_Cy : (y : 𝕏.X) × (PartialProof y).X) :
                        (SplitCut.r (ProofTransformationMap PartialProof) z_in_Cy).isBox (CutPre.r (PartialProof z_in_Cy.fst).α z_in_Cy.snd).isBox
                        noncomputable def Split.dep_sum_seq_proj {α : Type} {β : αType} {f : (a : α) × β a} {Q : (a : α) → β aβ aProp} (h : ∀ (n : ), mn, ∀ (h : (f m).fst = (f (m + 1)).fst), ¬Q (f m).fst (f m).snd ( (f (m + 1)).snd)) :
                        α ×
                        Equations
                        Instances For
                          theorem Split.infinite_dep_sum_sequence_proj_eq {α : Type} {β : αType} {f : (a : α) × β a} {Q : (a : α) → β aβ aProp} (h : ∀ (n : ), mn, ∀ (h : (f m).fst = (f (m + 1)).fst), ¬Q (f m).fst (f m).snd ( (f (m + 1)).snd)) (n : ) :
                          theorem Split.dep_sum_seq_proj_leq {α : Type} {β : αType} {f : (a : α) × β a} {Q : (a : α) → β aβ aProp} (h : ∀ (n : ), mn, ∀ (h : (f m).fst = (f (m + 1)).fst), ¬Q (f m).fst (f m).snd ( (f (m + 1)).snd)) (n : ) :
                          theorem Split.fst_same_in_range {α : Type} {β : αType} {f : (a : α) × β a} {Q : (a : α) → β aβ aProp} (h : ∀ (n : ), mn, ∀ (h : (f m).fst = (f (m + 1)).fst), ¬Q (f m).fst (f m).snd ( (f (m + 1)).snd)) (n m : ) :
                          n Nat.find n (dep_sum_seq_proj h m).2(f (dep_sum_seq_proj h m).2).fst = (f n).fst
                          theorem Split.infinite_dep_sum_chain {α : Type} {β : αType} {f : (a : α) × β a} {R : ααProp} {Q : (a : α) → β aβ aProp} (h : ∀ (n : ), mn, ∀ (h : (f m).fst = (f (m + 1)).fst), ¬Q (f m).fst (f m).snd ( (f (m + 1)).snd)) (f_chain : ∀ (n : ), Sigma.Lex R Q (f n) (f (n + 1))) (n : ) :
                          R (dep_sum_seq_proj h n).1 (dep_sum_seq_proj h (n + 1)).1
                          noncomputable def Split.infinite_dep_sum_chain_finite_subchain {α : Type} {β : αType} {f : (a : α) × β a} {Q : (a : α) → β aβ aProp} (h : ∀ (n : ), mn, ∀ (h : (f m).fst = (f (m + 1)).fst), ¬Q (f m).fst (f m).snd ( (f (m + 1)).snd)) (m : ) :
                          Fin (Nat.find - (dep_sum_seq_proj h m).2 + 1)β (dep_sum_seq_proj h m).1
                          Equations
                          Instances For
                            theorem Split.infinite_dep_sum_chain_finite_subchain_prop {α : Type} {β : αType} {f : (a : α) × β a} {Q : (a : α) → β aβ aProp} (h : ∀ (n : ), mn, ∀ (h : (f m).fst = (f (m + 1)).fst), ¬Q (f m).fst (f m).snd ( (f (m + 1)).snd)) (m : ) (k : Fin (Nat.find - (dep_sum_seq_proj h m).2)) :
                            theorem Split.infinite_dep_sum_chain_inf {α : Type} {β : αType} {f : (a : α) × β a} {Q : (a : α) → β aβ aProp} (h : ∀ (n : ), mn, ∀ (h : (f m).fst = (f (m + 1)).fst), ¬Q (f m).fst (f m).snd ( (f (m + 1)).snd)) (p : αProp) (q : (a : α) × β aProp) (inf : ∀ (n : ), ∃ (m : ), p (dep_sum_seq_proj h (n + m)).1) (conv : ∀ (n : ), p (dep_sum_seq_proj h n).1∃ (m : ), q (f ((dep_sum_seq_proj h n).2 + m))) (n : ) :
                            ∃ (m : ), q (f (n + m))
                            noncomputable def Split.ProofTransformation {𝕏 : Proof} {σ : 𝕏.XSplitSequent} (PartialProof : (x : 𝕏.X) → CutPre.CutProofFromPremises x σ) (root_proves : ∀ (x : 𝕏.X), CutPre.Proves x (PartialProof x) (σ x)) (box_prop : ∀ (x : 𝕏.X), (r 𝕏.α x).isBox∀ (n : ) (f : Fin (n + 1)(PartialProof x).X), f 0 = (PartialProof x).root(CutPre.r (PartialProof x).α (f n, )).isNonAxLeaf(∀ (m : Fin n), CutPre.edge (PartialProof x).α (f m.castSucc) (f m.succ))∃ (m : Fin (n + 1)), (CutPre.r (PartialProof x).α (f m)).isBox) :
                            Equations
                            Instances For