Syntax (Section 2.1) #
Equations
Equations
Abbreviations and Notation #
Equations
- Program.steps [] = (?'(~Formula.bottom))
- Program.steps (p :: ps) = (p;'Program.steps ps)
Instances For
Equations
- «term·_» = Lean.ParserDescr.node `«term·_» 1022 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "·") (Lean.ParserDescr.cat `term 0))
Instances For
Equations
- «term·__1» = Lean.ParserDescr.node `«term·__1» 1022 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "·") (Lean.ParserDescr.cat `term 0))
Instances For
Equations
- «term~_» = Lean.ParserDescr.node `«term~_» 11 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "~") (Lean.ParserDescr.cat `term 11))
Instances For
Equations
- «term_⋀_» = Lean.ParserDescr.trailingNode `«term_⋀_» 66 67 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "⋀") (Lean.ParserDescr.cat `term 66))
Instances For
Equations
- «term_⋁_» = Lean.ParserDescr.trailingNode `«term_⋁_» 60 61 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "⋁") (Lean.ParserDescr.cat `term 60))
Instances For
Equations
- «term_↣_» = Lean.ParserDescr.trailingNode `«term_↣_» 55 56 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↣ ") (Lean.ParserDescr.cat `term 55))
Instances For
Equations
- «term_⟷_» = Lean.ParserDescr.trailingNode `«term_⟷_» 55 56 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⟷ ") (Lean.ParserDescr.cat `term 55))
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
- «term_;'_» = Lean.ParserDescr.trailingNode `«term_;'_» 33 33 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol ";'") (Lean.ParserDescr.cat `term 34))
Instances For
Equations
- «term_⋓_» = Lean.ParserDescr.trailingNode `«term_⋓_» 33 33 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "⋓") (Lean.ParserDescr.cat `term 34))
Instances For
Equations
- «term∗_» = Lean.ParserDescr.node `«term∗_» 33 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "∗") (Lean.ParserDescr.cat `term 33))
Instances For
Equations
- term?'_ = Lean.ParserDescr.node `term?'_ 33 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "?'") (Lean.ParserDescr.cat `term 33))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Loaded Formulas #
- normal : Formula → AnyFormula
- loaded : LoadFormula → AnyFormula
Instances For
Equations
- instReprLoadFormula = { reprPrec := reprLoadFormula✝ }
Equations
- instReprAnyFormula = { reprPrec := reprAnyFormula✝ }
Equations
- instCoeFormulaAnyFormula = { coe := AnyFormula.normal }
Equations
- instCoeLoadFormulaAnyFormula = { coe := AnyFormula.loaded }
Equations
- loadMulti x✝² x✝¹ x✝ = List.foldr (fun (β : Program) (lf : LoadFormula) => ⌊β⌋AnyFormula.loaded lf) (⌊x✝¹⌋AnyFormula.normal x✝) x✝²
Instances For
@[simp]
Equations
- (⌊⌊x✝¹⌋⌋x✝) = List.foldr (fun (β : Program) (lf : LoadFormula) => ⌊β⌋AnyFormula.loaded lf) x✝ x✝¹
Instances For
Instances For
Equations
- instReprNegLoadFormula = { reprPrec := reprNegLoadFormula✝ }
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
- «term~'_» = Lean.ParserDescr.node `«term~'_» 1022 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "~'") (Lean.ParserDescr.cat `term 0))
Instances For
Equations
- «term~''_» = Lean.ParserDescr.node `«term~''_» 1022 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "~''") (Lean.ParserDescr.cat `term 1023))
Instances For
@[simp]
@[simp]
Load a possibly already loaded formula χ with a sequence δ of boxes. The result is loaded iff δ≠[] or χ was loaded.
Equations
- AnyFormula.loadBoxes x✝¹ x✝ = List.foldr (fun (β : Program) (lf : AnyFormula) => AnyFormula.loaded (⌊β⌋lf)) x✝ x✝¹
Instances For
@[simp]
theorem
AnyFormula.loadBoxes_cons
{α : Program}
{γ : List Program}
{ξ : AnyFormula}
:
AnyFormula.loadBoxes (α :: γ) ξ = AnyFormula.loaded (⌊α⌋AnyFormula.loadBoxes γ ξ)
Equations
- (AnyFormula.normal a).unload = a
- (AnyFormula.loaded a).unload = a.unload
Instances For
Spliting of loaded formulas #
Split any formula into the list of loaded boxes and the free formula.
Equations
- (AnyFormula.loaded lf).split = lf.split
- (AnyFormula.normal f).split = ([], f)
Instances For
Equations
- loadMulti_nonEmpty [] h x✝ = ⋯.elim
- loadMulti_nonEmpty [α] x_3 x✝ = ⌊α⌋AnyFormula.normal x✝
- loadMulti_nonEmpty (α :: d :: δ) x_3 x✝ = ⌊α⌋AnyFormula.loaded (loadMulti_nonEmpty (d :: δ) ⋯ x✝)
Instances For
@[simp]
theorem
loadMulti_nonEmpty_box
{δ : List Program}
{α : Program}
{h' : α :: δ ≠ []}
{φ : Formula}
(h : δ ≠ [])
:
loadMulti_nonEmpty (α :: δ) h' φ = ⌊α⌋AnyFormula.loaded (loadMulti_nonEmpty δ h φ)
theorem
LoadFormula.split_eq_loadMulti_nonEmpty
{δ : List Program}
{φ : Formula}
(lf : LoadFormula)
(h : lf.split = (δ, φ))
:
lf = loadMulti_nonEmpty δ ⋯ φ
theorem
LoadFormula.split_eq_loadMulti_nonEmpty'
{δ : List Program}
{φ : Formula}
(lf : LoadFormula)
(h : δ ≠ [])
(h2 : lf.split = (δ, φ))
:
lf = loadMulti_nonEmpty δ h φ