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
- leftInterpolantSequent x = {Sum.inr (interpolant 𝕏 (at encodeVar x))} ∪ (Split.f (Split.r 𝕏.α x)).filterLeft
Instances For
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
- leftEquationSequent x = {Sum.inr (interpolant 𝕏 (equation x))} ∪ (Split.f (Split.r 𝕏.α x)).filterLeft
Instances For
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
- rightInterpolantSequent x = {Sum.inl (~interpolant 𝕏 (at encodeVar x))} ∪ (Split.f (Split.r 𝕏.α x)).filterRight
Instances For
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
- rightEquationSequent x = {Sum.inl (~interpolant 𝕏 (equation x))} ∪ (Split.f (Split.r 𝕏.α x)).filterRight
Instances For
Transforms rule applications in the split system into applications in the extended system.
Equations
- Split_to_Ext (Split.RuleApp.topₗ Δ in_Δ) = Ext.RuleApp.topₗ Δ in_Δ
- Split_to_Ext (Split.RuleApp.topᵣ Δ in_Δ) = Ext.RuleApp.topᵣ Δ in_Δ
- Split_to_Ext (Split.RuleApp.axₗₗ Δ n in_Δ) = Ext.RuleApp.axₗₗ Δ n in_Δ
- Split_to_Ext (Split.RuleApp.axₗᵣ Δ n in_Δ) = Ext.RuleApp.axₗᵣ Δ n in_Δ
- Split_to_Ext (Split.RuleApp.axᵣₗ Δ n in_Δ) = Ext.RuleApp.axᵣₗ Δ n in_Δ
- Split_to_Ext (Split.RuleApp.axᵣᵣ Δ n in_Δ) = Ext.RuleApp.axᵣᵣ Δ n in_Δ
- Split_to_Ext (Split.RuleApp.orₗ Δ A B in_Δ) = Ext.RuleApp.orₗ Δ A B in_Δ
- Split_to_Ext (Split.RuleApp.orᵣ Δ A B in_Δ) = Ext.RuleApp.orᵣ Δ A B in_Δ
- Split_to_Ext (Split.RuleApp.andₗ Δ A B in_Δ) = Ext.RuleApp.andₗ Δ A B in_Δ
- Split_to_Ext (Split.RuleApp.andᵣ Δ A B in_Δ) = Ext.RuleApp.andᵣ Δ A B in_Δ
- Split_to_Ext (Split.RuleApp.boxₗ Δ A in_Δ) = Ext.RuleApp.boxₗ Δ A in_Δ
- Split_to_Ext (Split.RuleApp.boxᵣ Δ A in_Δ) = Ext.RuleApp.boxᵣ Δ A in_Δ
Instances For
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.
Equations
- partialLeft_topₗ x rule_def = { X := Unit, α := fun (u : Unit) => (Ext.RuleApp.topₗ (leftEquationSequent x) ⋯, ∅), root := (), step := partialLeft_topₗ._proof_2, path := ⋯ }
Instances For
Equations
- partialLeft_topᵣ x rule_def = { X := Unit, α := fun (u : Unit) => (Ext.RuleApp.topᵣ (leftEquationSequent x) ⋯, ∅), root := (), step := partialLeft_topₗ._proof_2, path := ⋯ }
Instances For
Equations
- partialLeft_axₗₗ x rule_def = { X := Unit, α := fun (u : Unit) => (Ext.RuleApp.axₗₗ (leftEquationSequent x) n ⋯, ∅), root := (), step := partialLeft_topₗ._proof_2, path := ⋯ }
Instances For
Equations
- partialLeft_axₗᵣ x rule_def = { X := Unit, α := fun (u : Unit) => (Ext.RuleApp.axₗᵣ (leftEquationSequent x) n ⋯, ∅), root := (), step := partialLeft_topₗ._proof_2, path := ⋯ }
Instances For
Equations
- partialLeft_axᵣₗ x rule_def = { X := Unit, α := fun (u : Unit) => (Ext.RuleApp.axᵣₗ (leftEquationSequent x) n ⋯, ∅), root := (), step := partialLeft_topₗ._proof_2, path := ⋯ }
Instances For
Equations
- partialLeft_axᵣᵣ x rule_def = { X := Unit, α := fun (u : Unit) => (Ext.RuleApp.topᵣ (leftEquationSequent x) ⋯, ∅), root := (), step := partialLeft_topₗ._proof_2, path := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Defines the left partial interpolation proof Lₓ.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every left partial interpolation proof Lₓ proves f(x)ˡ ∣ ιₓ.
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.
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.
Equations
- partialRight_topₗ x rule_def = { X := Unit, α := fun (u : Unit) => (Ext.RuleApp.topₗ (rightEquationSequent x) ⋯, ∅), root := (), step := partialLeft_topₗ._proof_2, path := ⋯ }
Instances For
Equations
- partialRight_topᵣ x rule_def = { X := Unit, α := fun (u : Unit) => (Ext.RuleApp.topᵣ (rightEquationSequent x) ⋯, ∅), root := (), step := partialLeft_topₗ._proof_2, path := ⋯ }
Instances For
Equations
- partialRight_axₗₗ x rule_def = { X := Unit, α := fun (u : Unit) => (Ext.RuleApp.topₗ (rightEquationSequent x) ⋯, ∅), root := (), step := partialLeft_topₗ._proof_2, path := ⋯ }
Instances For
Equations
- partialRight_axₗᵣ x rule_def = { X := Unit, α := fun (u : Unit) => (Ext.RuleApp.axₗᵣ (rightEquationSequent x) n ⋯, ∅), root := (), step := partialLeft_topₗ._proof_2, path := ⋯ }
Instances For
Equations
- partialRight_axᵣₗ x rule_def = { X := Unit, α := fun (u : Unit) => (Ext.RuleApp.axᵣₗ (rightEquationSequent x) n ⋯, ∅), root := (), step := partialLeft_topₗ._proof_2, path := ⋯ }
Instances For
Equations
- partialRight_axᵣᵣ x rule_def = { X := Unit, α := fun (u : Unit) => (Ext.RuleApp.axᵣᵣ (rightEquationSequent x) n ⋯, ∅), root := (), step := partialLeft_topₗ._proof_2, path := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
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)ʳ.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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.
Defining the right interpolation proof with all non-axiomatic nodes removed.
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.