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.
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.
Instances For
Finite conjunction, with empty conjunction equal to truth.
Instances For
Finite disjunction, with empty disjunction equal to falsehood.
Instances For
The type α has an implication connective (→).
- imp (a b : α) : α
a → bdenotesaimpliesb.
Instances
The type α has a bi-implication connective (↔).
- iff (a b : α) : α
a ↔ bdenotesaimpliesband vice-versa.
Instances
a ↔ b denotes a implies b and vice-versa.
Instances For
The type α has a negation connective (¬).
- not (a : α) : α
¬ais the negation ofa.
Instances
General modalities from modal similarity types (polynomial functors) #
The type α has a family of triangle operators (Δ).
Δ[op](φ₁, ..., φₙ)means thatφ₁, ...,φₙare valid at some respective related states.
Instances
Δ[op](φ₁, ..., φₙ) means that φ₁, ..., φₙ are valid at some respective related states.
Instances For
The type α has a family of nabla operators (∇).
∇[op](φ₁, ..., φₙ)means thatφ₁, ...,φₙare valid at all respective related states.
Instances
∇[op](φ₁, ..., φₙ) means that φ₁, ..., φₙ are valid at all respective related states.
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.
A family of triangle operators over induces dynamic diamond modalities by applying each operator to the constant argument family.
A family of nabla operators induces dynamic box modalities by applying each operator to the constant argument family.
Basic modalities (Unimodal logic operators) #
The type α has a box modality (□).
- box (a : α) : α
ais valid in all immediately reachable states.
Instances
a is valid in all immediately reachable states.
Instances For
The type α has a diamond modality (◇).
- diamond (a : α) : α
ais valid in a reachable state.
Instances
A dynamic diamond modality with a unique action induces a basic diamond modality.
A dynamic box modality with a unique action induces a basic box modality.
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.