Vocabulary and other Syntax functions (part of Section 2.1) #
Vocab #
The union of the vocabularies in a list.
Equations
- PDL.Vocab.fromList L = L.toFinset.sup id
Instances For
@[reducible, inline]
The combined vocabulary of a list of formulas.
Equations
Instances For
@[reducible, inline]
The combined vocabulary of a list of programs.
Equations
Instances For
@[reducible, inline]
The combined vocabulary of a finset of formulas.
Equations
Instances For
@[reducible, inline]
The combined vocabulary of a finset of programs.
Equations
Instances For
The vocabulary of a loaded formula after erasing its loading annotations.
Instances For
The vocabulary of a negated loaded formula after erasing its loading annotations.
Equations
- nlf.voc = (PDL.negUnload nlf).voc
Instances For
Tests in a program #
@[implicit_reducible]
Test(α)
Equations
Instances For
Subprograms #
Prog(α)
Equations
- PDL.subprograms (PDL.Program.atom_prog a) = [PDL.Program.atom_prog a]
- PDL.subprograms (PDL.Program.test τ) = [PDL.Program.test τ]
- PDL.subprograms (α.sequence β) = [α.sequence β] ++ PDL.subprograms α ++ PDL.subprograms β
- PDL.subprograms (α.union β) = [α.union β] ++ PDL.subprograms α ++ PDL.subprograms β
- PDL.subprograms α.star = [α.star] ++ PDL.subprograms α
Instances For
theorem
PDL.subprograms_length
{α β : Program}
:
β ∈ subprograms α → lengthOfProgram β ≤ lengthOfProgram α
theorem
PDL.length_lt_of_mem_subprograms_erase
{α β : Program}
:
β ∈ (subprograms α).erase α → lengthOfProgram β < lengthOfProgram α
Fresh variables #
Get a fresh atomic proposition x not occuring in ψ.
Equations
- PDL.freshVarForm PDL.Formula.bottom = 0
- PDL.freshVarForm (PDL.Formula.atom_prop n) = n + 1
- PDL.freshVarForm φ.neg = PDL.freshVarForm φ
- PDL.freshVarForm (φ.and ψ) = max (PDL.freshVarForm φ) (PDL.freshVarForm ψ)
- PDL.freshVarForm (PDL.Formula.box α φ) = max (PDL.freshVarProg α) (PDL.freshVarForm φ)
Instances For
Get a fresh atomic proposition x not occuring in α.
Equations
- PDL.freshVarProg (PDL.Program.atom_prog n) = 0
- PDL.freshVarProg (α.sequence β) = max (PDL.freshVarProg α) (PDL.freshVarProg β)
- PDL.freshVarProg (α.union β) = max (PDL.freshVarProg α) (PDL.freshVarProg β)
- PDL.freshVarProg α.star = PDL.freshVarProg α
- PDL.freshVarProg (PDL.Program.test φ) = PDL.freshVarForm φ