Inference systems #
This module defines the basic classes and notation for inference systems -- systems for deriving conclusions from premises.
We intend inference systems broadly, as in theory of programming languages. In applications to logic, for example, we use inference systems to capture both the concepts of satisfiability and proof systems.
The notation typeclass for inference systems.
This enables the notation S⇓a, where S is a tag for the inference system and a : α
is a derivable value.
- derivation (a : α) : Sort v
S⇓ais a derivation ofa, that is, a witness thatais derivable in the systemS. The meaning of this notation is type-dependent.
Instances
Default tag for inference system instances. ⇓a is short for Default⇓a.
Class for types (α) that have a canonical inference system.
Equations
Instances For
S⇓a is a derivation of a, that is, a witness that a is derivable in the system S.
The meaning of this notation is type-dependent.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Rewrites the conclusion of a proof into an equal one.
Equations
Instances For
a is derivable in S if it is the conclusion of some derivation.
Equations
Instances For
a : α is derivable in the default inference system for α.
Equations
Instances For
Shows derivability from a derivation.
Equations
Extracts (noncomputably) a derivation from the fact that a conclusion is derivable.
Equations
Instances For
S⇓a is a derivation of a, that is, a witness that a is derivable in the system S.
The meaning of this notation is type-dependent.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Delaborator that hides InferenceSystem.Default in uses of the ⇓a notation.
Equations
- One or more equations did not get rendered due to their size.