@[reducible, inline]
Variable index: identifies a variable x_i
Equations
Instances For
@[reducible, inline]
Pronoun index: identifies a pronoun p_i
Equations
Instances For
@[implicit_reducible]
Equations
- Semantics.Dynamic.PLA.instDecidableEqTerm.decEq (Semantics.Dynamic.PLA.Term.var a) (Semantics.Dynamic.PLA.Term.var b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Semantics.Dynamic.PLA.instDecidableEqTerm.decEq (Semantics.Dynamic.PLA.Term.var a) (Semantics.Dynamic.PLA.Term.pron a_1) = isFalse ⋯
- Semantics.Dynamic.PLA.instDecidableEqTerm.decEq (Semantics.Dynamic.PLA.Term.pron a) (Semantics.Dynamic.PLA.Term.var a_1) = isFalse ⋯
- Semantics.Dynamic.PLA.instDecidableEqTerm.decEq (Semantics.Dynamic.PLA.Term.pron a) (Semantics.Dynamic.PLA.Term.pron b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[implicit_reducible]
Equations
- Semantics.Dynamic.PLA.instReprTerm = { reprPrec := Semantics.Dynamic.PLA.instReprTerm.repr }
@[implicit_reducible]
Equations
Equations
- Semantics.Dynamic.PLA.instHashableTerm.hash (Semantics.Dynamic.PLA.Term.var a) = mixHash 0 (hash a)
- Semantics.Dynamic.PLA.instHashableTerm.hash (Semantics.Dynamic.PLA.Term.pron a) = mixHash 1 (hash a)
Instances For
Pronouns in a term (singleton or empty)
Equations
- (Semantics.Dynamic.PLA.Term.var a).pronouns = ∅
- (Semantics.Dynamic.PLA.Term.pron a).pronouns = {a}
Instances For
Variables in a term
Equations
- (Semantics.Dynamic.PLA.Term.var a).vars = {a}
- (Semantics.Dynamic.PLA.Term.pron a).vars = ∅
Instances For
Is this a pronoun?
Equations
- (Semantics.Dynamic.PLA.Term.var a).isPron = False
- (Semantics.Dynamic.PLA.Term.pron a).isPron = True
Instances For
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
Pronouns in a list of terms via Finset.biUnion.
Equations
- Semantics.Dynamic.PLA.termsPronouns ts = ts.toFinset.biUnion Semantics.Dynamic.PLA.Term.pronouns
Instances For
theorem
Semantics.Dynamic.PLA.mem_termsPronouns
(ts : List Term)
(i : PronIdx)
:
i ∈ termsPronouns ts ↔ ∃ t ∈ ts, i ∈ t.pronouns
@[implicit_reducible]
Equations
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
Instances For
Domain: existentially bound variables
Equations
Instances For
Range: pronouns in formula (using biUnion for atoms)
Equations
- (Semantics.Dynamic.PLA.Formula.atom a a_1).range = Semantics.Dynamic.PLA.termsPronouns a_1
- (∼a).range = a.range
- (a ⋀ a_1).range = a.range ∪ a_1.range
- (Semantics.Dynamic.PLA.Formula.exists_ a a_1).range = a_1.range
Instances For
Free variables in formula
Equations
- (Semantics.Dynamic.PLA.Formula.atom a a_1).freeVars = a_1.toFinset.biUnion Semantics.Dynamic.PLA.Term.vars
- (∼a).freeVars = a.freeVars
- (a ⋀ a_1).freeVars = a.freeVars ∪ a_1.freeVars
- (Semantics.Dynamic.PLA.Formula.exists_ a a_1).freeVars = a_1.freeVars.erase a
Instances For
theorem
Semantics.Dynamic.PLA.Formula.range_atom
(name : String)
(ts : List Term)
:
(atom name ts).range = termsPronouns ts
@[reducible, inline]
Resolution: maps pronouns to variables
Equations
Instances For
Apply resolution to a term
Equations
Instances For
Apply resolution to a formula
Equations
- Semantics.Dynamic.PLA.Formula.resolve ρ (Semantics.Dynamic.PLA.Formula.atom a a_1) = Semantics.Dynamic.PLA.Formula.atom a (List.map (Semantics.Dynamic.PLA.Term.resolve ρ) a_1)
- Semantics.Dynamic.PLA.Formula.resolve ρ (∼a) = (∼Semantics.Dynamic.PLA.Formula.resolve ρ a)
- Semantics.Dynamic.PLA.Formula.resolve ρ (a ⋀ a_1) = (Semantics.Dynamic.PLA.Formula.resolve ρ a ⋀ Semantics.Dynamic.PLA.Formula.resolve ρ a_1)
- Semantics.Dynamic.PLA.Formula.resolve ρ (Semantics.Dynamic.PLA.Formula.exists_ a a_1) = Semantics.Dynamic.PLA.Formula.exists_ a (Semantics.Dynamic.PLA.Formula.resolve ρ a_1)
Instances For
Observation 2 (@cite{dekker-2012} §2.1): Resolution preserves domain.
n(φ^ρ) = n(φ): resolving pronouns doesn't affect which variables are bound.
Resolution removes all pronouns from a term
Observation 3 (@cite{dekker-2012} §2.1): Resolution eliminates all pronouns.
r(φ^ρ) = ∅: after resolution, the formula contains no pronouns.