Logical operators #
This module contains typeclasses and associated notation for common logical operators: propositional
connectives (like ∧ and →), modalities (like ◇, plain and indexed), linear connectives (like
⊗), etc.
Propositional connectives #
The type α has an and connective (∧).
- and (a b : α) : α
a ∧ bis the conjunction ofaandb.
Instances
a ∧ b is the conjunction of a and b.
Equations
- Cslib.Logic.«term_∧_» = Lean.ParserDescr.trailingNode `Cslib.Logic.«term_∧_» 36 37 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ∧ ") (Lean.ParserDescr.cat `term 36))
Instances For
The type α has an or connective (∨).
- or (a b : α) : α
a ∨ bis the disjunction ofaandb.
Instances
a ∨ b is the disjunction of a and b.
Equations
- Cslib.Logic.«term_∨_» = Lean.ParserDescr.trailingNode `Cslib.Logic.«term_∨_» 30 31 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ∨ ") (Lean.ParserDescr.cat `term 30))
Instances For
The type α has an implication connective (→).
- imp (a b : α) : α
a → bdenotesaimpliesb.
Instances
a → b denotes a implies b.
Equations
- Cslib.Logic.«term_→_» = Lean.ParserDescr.trailingNode `Cslib.Logic.«term_→_» 25 26 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " → ") (Lean.ParserDescr.cat `term 25))
Instances For
The type α has a bi-implication connective (↔).
- iff (a b : α) : α
a ↔ bdenotesaimpliesband vice-versa.
Instances
a ↔ b denotes a implies b and vice-versa.
Equations
- Cslib.Logic.«term_↔_» = Lean.ParserDescr.trailingNode `Cslib.Logic.«term_↔_» 20 21 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↔ ") (Lean.ParserDescr.cat `term 20))
Instances For
The type α has a negation connective (¬).
- not (a : α) : α
¬ais the negation ofa.
Instances
¬a is the negation of a.
Equations
- Cslib.Logic.«term¬_» = Lean.ParserDescr.node `Cslib.Logic.«term¬_» 1024 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "¬") (Lean.ParserDescr.cat `term 40))
Instances For
Basic modalities #
The type α has a box modality (□).
- box (a : α) : α
ais valid in all immediately reachable states.
Instances
a is valid in all immediately reachable states.
Equations
- Cslib.Logic.«term□_» = Lean.ParserDescr.node `Cslib.Logic.«term□_» 40 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "□") (Lean.ParserDescr.cat `term 40))
Instances For
The type α has a diamond modality (◇).
- diamond (a : α) : α
ais valid in a reachable state.
Instances
a is valid in a reachable state.
Equations
- Cslib.Logic.«term◇_» = Lean.ParserDescr.node `Cslib.Logic.«term◇_» 40 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "◇") (Lean.ParserDescr.cat `term 40))
Instances For
Dynamic modalities #
Here we need to use the prefix d to distinguish our notation from the normal [·] and ⟨·⟩.
A refactoring that makes this unnecessary would be welcome.
The type α has a dynamic box modality with action type β (d[a]φ).
- dynBox (a : β) (b : α) : α
bis necessarily valid aftera.
Instances
b is necessarily valid after a.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The type α has a dynamic diamond modality with action type β (d⟨a⟩φ).
- dynDiamond (a : β) (b : α) : α
bis possibly valid aftera.
Instances
b is possibly valid after a.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Linear connectives #
The type α has a tensor connective (⊗).
- tensor (a b : α) : α
a ⊗ bis the multiplicative conjunction ofaandb.
Instances
a ⊗ b is the multiplicative conjunction of a and b.
Equations
- Cslib.Logic.«term_⊗_» = Lean.ParserDescr.trailingNode `Cslib.Logic.«term_⊗_» 35 36 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊗ ") (Lean.ParserDescr.cat `term 35))