Documentation

GL.Interpolation.PartialInterpolation

noncomputable def leftInterpolantSequent {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) :

Given a node x, defines what the root of the left interpolation proof should look like, i.e. f(x)ˡ ∣ ιₓ in on paper work.

Equations
Instances For
    noncomputable def leftEquationSequent {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) :

    Given a node x, defines what the same as above except for the equation σ(χₓ), helpful for cases where the interpolant isn't defined by the interpolants of its premise nodes., i.e. f(x)ˡ ∣ σ(χₓ) in on paper work.

    Equations
    Instances For
      noncomputable def rightInterpolantSequent {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) :

      Given a node x, defines what the root of the right interpolation proof should look like, i.e. ~ιₓ ∣ f(x)ʳ in on paper work.

      Equations
      Instances For
        noncomputable def rightEquationSequent {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) :

        Given a node x, defines what the same as above except for the equation σ(χₓ), helpful for cases where the interpolant isn't defined by the interpolants of its premise nodes., i.e. ~σ(χₓ) ∣ f(x)ʳ in on paper work.

        Equations
        Instances For
          def Split_to_Ext {𝕏 : Split.Proof} {x : 𝕏.X} {τ : 𝕏.XSplitSequent} :

          Transforms rule applications in the split system into applications in the extended system.

          Equations
          Instances For
            theorem Split_to_Ext_isBox {𝕏 : Split.Proof} {x : 𝕏.X} {τ : 𝕏.XSplitSequent} (r : Split.RuleApp) :
            theorem Split_to_Ext_f {𝕏 : Split.Proof} {x : 𝕏.X} {τ : 𝕏.XSplitSequent} (r : Split.RuleApp) :
            theorem Split_to_Ext_fₚ {𝕏 : Split.Proof} {x : 𝕏.X} {τ : 𝕏.XSplitSequent} (r : Split.RuleApp) :
            theorem Split_to_Ext_fₙ {𝕏 : Split.Proof} {x : 𝕏.X} {τ : 𝕏.XSplitSequent} (r : Split.RuleApp) :

            Partial Left Interpolation Proofs #

            All of the left and right partial interpolation proofs, split apart based on rule application. These are split apart since otherwise the file runs very slow.

            noncomputable def partialLeft_topₗ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {in_Δ : Sum.inl Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.topₗ Δ in_Δ) :
            Equations
            Instances For
              noncomputable def partialLeft_topᵣ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {in_Δ : Sum.inr Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.topᵣ Δ in_Δ) :
              Equations
              Instances For
                noncomputable def partialLeft_axₗₗ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {n : } {in_Δ : Sum.inl (at n) Δ Sum.inl (na n) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.axₗₗ Δ n in_Δ) :
                Equations
                Instances For
                  noncomputable def partialLeft_axₗᵣ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {n : } {in_Δ : Sum.inl (at n) Δ Sum.inr (na n) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.axₗᵣ Δ n in_Δ) :
                  Equations
                  Instances For
                    noncomputable def partialLeft_axᵣₗ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {n : } {in_Δ : Sum.inr (at n) Δ Sum.inl (na n) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.axᵣₗ Δ n in_Δ) :
                    Equations
                    Instances For
                      noncomputable def partialLeft_axᵣᵣ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {n : } {in_Δ : Sum.inr (at n) Δ Sum.inr (na n) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.axᵣᵣ Δ n in_Δ) :
                      Equations
                      Instances For
                        noncomputable def partialLeft_orₗ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {φ ψ : Formula} {in_Δ : Sum.inl (φ v ψ) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.orₗ Δ φ ψ in_Δ) :
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          noncomputable def partialLeft_orᵣ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {φ ψ : Formula} {in_Δ : Sum.inr (φ v ψ) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.orᵣ Δ φ ψ in_Δ) :
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            noncomputable def partialLeft_andₗ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {φ ψ : Formula} {in_Δ : Sum.inl (φ&ψ) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.andₗ Δ φ ψ in_Δ) :
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              noncomputable def partialLeft_andᵣ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {φ ψ : Formula} {in_Δ : Sum.inr (φ&ψ) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.andᵣ Δ φ ψ in_Δ) :
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                noncomputable def partialLeft_boxₗ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {φ : Formula} {in_Δ : Sum.inl (φ) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.boxₗ Δ φ in_Δ) :
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  noncomputable def partialLeft_boxᵣ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {φ : Formula} {in_Δ : Sum.inr (φ) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.boxᵣ Δ φ in_Δ) :
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    noncomputable def partialEquationLeft {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) :

                                    Defines the left partial interpolation proof Lₓ.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      noncomputable def partialInterpolationLeft {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) :
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For

                                        Every left partial interpolation proof Lₓ proves f(x)ˡ ∣ ιₓ.

                                        theorem partialInterpolationLeft_box_prop {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) :
                                        (Split.r 𝕏.α x).isBox∀ (n : ) (f : Fin (n + 1)(partialInterpolationLeft x).X), f 0 = (partialInterpolationLeft x).root(Ext.r (partialInterpolationLeft x).α (f n, )).isNonAxLeaf(∀ (m : Fin n), Ext.edge (partialInterpolationLeft x).α (f m.castSucc) (f m.succ))∃ (m : Fin (n + 1)), (Ext.r (partialInterpolationLeft x).α (f m)).isBox

                                        For every x in a finite split proof, the partial left interpolation proof associated with x has the property that on every path from the root to a non-axiomatic leaf, the box rule is applied on this path.

                                        noncomputable def interpolantProofLeft {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] :

                                        Defining the left interpolation proof with all non-axiomatic nodes removed.

                                        Equations
                                        Instances For

                                          Left syntactic interpolation result!

                                          Partial Left Interpolation Proofs #

                                          All of the left and right partial interpolation proofs, split apart based on rule application. These are split apart since otherwise the file runs very slow.

                                          noncomputable def partialRight_topₗ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {in_Δ : Sum.inl Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.topₗ Δ in_Δ) :
                                          Equations
                                          Instances For
                                            noncomputable def partialRight_topᵣ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {in_Δ : Sum.inr Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.topᵣ Δ in_Δ) :
                                            Equations
                                            Instances For
                                              noncomputable def partialRight_axₗₗ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {n : } {in_Δ : Sum.inl (at n) Δ Sum.inl (na n) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.axₗₗ Δ n in_Δ) :
                                              Equations
                                              Instances For
                                                noncomputable def partialRight_axₗᵣ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {n : } {in_Δ : Sum.inl (at n) Δ Sum.inr (na n) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.axₗᵣ Δ n in_Δ) :
                                                Equations
                                                Instances For
                                                  noncomputable def partialRight_axᵣₗ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {n : } {in_Δ : Sum.inr (at n) Δ Sum.inl (na n) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.axᵣₗ Δ n in_Δ) :
                                                  Equations
                                                  Instances For
                                                    noncomputable def partialRight_axᵣᵣ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {n : } {in_Δ : Sum.inr (at n) Δ Sum.inr (na n) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.axᵣᵣ Δ n in_Δ) :
                                                    Equations
                                                    Instances For
                                                      noncomputable def partialRight_orₗ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {φ ψ : Formula} {in_Δ : Sum.inl (φ v ψ) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.orₗ Δ φ ψ in_Δ) :
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        noncomputable def partialRight_orᵣ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {φ ψ : Formula} {in_Δ : Sum.inr (φ v ψ) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.orᵣ Δ φ ψ in_Δ) :
                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          noncomputable def partialRight_andₗ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {φ ψ : Formula} {in_Δ : Sum.inl (φ&ψ) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.andₗ Δ φ ψ in_Δ) :
                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            noncomputable def partialRight_andᵣ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {φ ψ : Formula} {in_Δ : Sum.inr (φ&ψ) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.andᵣ Δ φ ψ in_Δ) :
                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              noncomputable def partialRight_boxₗ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {φ : Formula} {in_Δ : Sum.inl (φ) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.boxₗ Δ φ in_Δ) :
                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                noncomputable def partialRight_boxᵣ {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) {Δ : SplitSequent} {φ : Formula} {in_Δ : Sum.inr (φ) Δ} (rule_def : Split.r 𝕏.α x = Split.RuleApp.boxᵣ Δ φ in_Δ) :
                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  noncomputable def partialEquationRight {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) :

                                                                  Defines the right partial interpolation proof Rₓ.

                                                                  Equations
                                                                  • One or more equations did not get rendered due to their size.
                                                                  Instances For

                                                                    Every right partial interpolation proof Rₓ proves ~ιₓ ∣ f(x)ʳ.

                                                                    noncomputable def partialInterpolationRight {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) :
                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For
                                                                      theorem partialInterpolationRight_box_prop {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] (x : 𝕏.X) :
                                                                      (Split.r 𝕏.α x).isBox∀ (n : ) (f : Fin (n + 1)(partialInterpolationRight x).X), f 0 = (partialInterpolationRight x).root(Ext.r (partialInterpolationRight x).α (f n, )).isNonAxLeaf(∀ (m : Fin n), Ext.edge (partialInterpolationRight x).α (f m.castSucc) (f m.succ))∃ (m : Fin (n + 1)), (Ext.r (partialInterpolationRight x).α (f m)).isBox

                                                                      For every x in a finite split proof, the partial left interpolation proof associated with x has the property that on every path from the root to a non-axiomatic leaf, the box rule is applied on this path.

                                                                      noncomputable def interpolantProofRight {𝕏 : Split.Proof} [fin_X : Fintype 𝕏.X] :

                                                                      Defining the right interpolation proof with all non-axiomatic nodes removed.

                                                                      Equations
                                                                      Instances For

                                                                        Right syntactic interpolation result!

                                                                        Given a finite split proof, interpolantProofLeft proves the left interpolation correctness statement and interpolantProofRight proves the right interpolation correctness statement.