Flipping a tableau (for section 7) #
Like the paper, we only prove interpolation for clusters with a loaded formulas on the right side. For the case where the loaded formula is on the left, we flip the tableau left-to-right.
The lemmas here then allow us to prove clusterInterpolation from clusterInterpolation_right.
Note: is it possible and useful to rewrite this in more term and less tactic mode?
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (LocalTableau.byLocalRule lra X_def next).flip = LocalTableau.byLocalRule lra.flip ⋯ fun (Y : Sequent) (Y_in : Y ∈ lra.flip.C) => ⋯ ▸ (next Y.flip ⋯).flip
- (LocalTableau.sim Xbas).flip = LocalTableau.sim ⋯
Instances For
theorem
endNodesOf_flip
{X : Sequent}
{lt : LocalTableau X}
{Y : Sequent}
:
Y ∈ endNodesOf lt.flip → Y.flip ∈ endNodesOf lt
@[simp]
def
LoadedPathRepeat.flip
{Hist : History}
{X : Sequent}
:
LoadedPathRepeat Hist X → LoadedPathRepeat (List.map Sequent.flip Hist) X.flip
Instances For
def
Tableau.flip
{Hist : History}
{X : Sequent}
:
Tableau Hist X → Tableau (List.map Sequent.flip Hist) X.flip
(┛ಠ_ಠ)┛彡┻━┻
Equations
- (Tableau.loc nrep nbas lt next).flip = Tableau.loc ⋯ ⋯ lt.flip fun (Y : Sequent) (Y_in : Y ∈ endNodesOf lt.flip) => ⋯ ▸ (next Y.flip ⋯).flip
- (Tableau.pdl nrep bas r next).flip = Tableau.pdl ⋯ ⋯ r.flip next.flip
- (Tableau.lrep lpr).flip = Tableau.lrep lpr.flip
Instances For
@[simp]
Equations
- PathIn.nil.flip = PathIn.nil
- (PathIn.loc Y_in tail).flip = PathIn.loc ⋯ (have this := tail.flip; ⋯.mpr this)
- tail.pdl.flip = tail.flip.pdl