Sequents #
Optional loaded formulas (Olfs) #
In nodes we optionally have a negated loaded formula on the left or right.
Equations
Instances For
Instance that is used to say (O : Olf) \ (O' : Olf).
Equations
- One or more equations did not get rendered due to their size.
Equations
- oldO.change Ocond newO = Option.overwrite (oldO \ Ocond) newO
Instances For
Equations
- Olf.isNone none = True
- Olf.isNone (some (Sum.inl nlf)) = False
- Olf.isNone (some (Sum.inr nlf)) = False
Instances For
Equations
- Olf.isLeft none = False
- Olf.isLeft (some (Sum.inl nlf)) = True
- Olf.isLeft (some (Sum.inr nlf)) = False
Instances For
Equations
- Olf.isRight none = False
- Olf.isRight (some (Sum.inl nlf)) = False
- Olf.isRight (some (Sum.inr nlf)) = True
Instances For
Sequents and their (multi)set quality #
Equations
Two Sequents are set-equal when their components are finset-equal.
That is, we do not care about the order of the lists, but we do care
about the side of the formula and what formual is loaded.
Hint: use List.toFinset.ext_iff with this.
Equations
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
Instances For
Equations
- instSetoidSequent = { r := Sequent.setEqTo, iseqv := equivalenceSequentSetEqTo }
Needed to make List.toFinset work for List Seqt.
Strange that this is not inferred from instDecidableRelSequentSetEqTo automatically.
Equations
Two Sequents are multiset-equal when their components are multiset-equal.
That is, we do not care about the order of the lists, but we do care about the side
on which the formula is, whether it is loaded or not, and how often it occurs.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Components and sides of sequents #
(Joint) vocabulary of sequents #
Formulas as elements of sequents #
Equations
- instDecidableMemFormulaSequent = Prod.casesOn X fun (L : List Formula) (snd : List Formula × Olf) => Prod.casesOn snd fun (R : List Formula) (o : Olf) => id inferInstance
Equations
- AnyNegFormula.mem_Sequent x✝ (~''(AnyFormula.normal φ)) = (~φ ∈ x✝)
- AnyNegFormula.mem_Sequent x✝ (~''(AnyFormula.loaded χ)) = ((~'χ) ∈ x✝)
Instances For
Equations
Closed, basic, loaded and free sequents #
A variant of Fintype.decidableExistsFintype, used by instDecidableClosed.
Equations
- Fintype.decidableExistsConjFintype = if h : ∃ (x : Subtype p), q ↑x then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Semantics of sequents #
Equations
- One or more equations did not get rendered due to their size.
Removing loaded formulas from sequents #
Equations
Instances For
Equations
- (~''(AnyFormula.normal φ)).in_side Side.LL (L, fst, snd) = (~φ ∈ L)
- (~''(AnyFormula.normal φ)).in_side Side.RR (fst, R, snd) = (~φ ∈ R)
- (~''(AnyFormula.loaded χ)).in_side Side.LL (fst, fst_1, O) = (O = some (Sum.inl (~'χ)))
- (~''(AnyFormula.loaded χ)).in_side Side.RR (fst, fst_1, O) = (O = some (Sum.inr (~'χ)))
Instances For
Whatever formulas #
A type to describe all formulas that can occur in a sequent, without losing information about whether they are loaded or not.
Unfortunately our AnyFormula type does not include negated loaded formulas, so this is yet
another type to describe "whatever formula" can be in a sequent, without losing information.
- any : AnyFormula → WhateverFormula
- negLoad : NegLoadFormula → WhateverFormula
Instances For
Equations
- instReprWhateverFormula = { reprPrec := instReprWhateverFormula.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- instDecidableEqWhateverFormula.decEq (WhateverFormula.any a) (WhateverFormula.any b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- instDecidableEqWhateverFormula.decEq (WhateverFormula.any a) (WhateverFormula.negLoad a_1) = isFalse ⋯
- instDecidableEqWhateverFormula.decEq (WhateverFormula.negLoad a) (WhateverFormula.any a_1) = isFalse ⋯
- instDecidableEqWhateverFormula.decEq (WhateverFormula.negLoad a) (WhateverFormula.negLoad b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
Equations
- Olf.wForms none = []
- Olf.wForms (some (Sum.inl nlf)) = [WhateverFormula.negLoad nlf]
- Olf.wForms (some (Sum.inr nlf)) = [WhateverFormula.negLoad nlf]
Instances For
In a basic sequent all free diamonds are atomic.
In a basic sequent all loaded diamonds are atomic.