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.
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.
Instances For
Rewrites the conclusion of a proof into an equal one.
Instances For
a is derivable in S if it is the conclusion of some derivation.
Instances For
a : α is derivable in the default inference system for α.
Instances For
Shows derivability from a derivation.
Extracts (noncomputably) a derivation from the fact that a conclusion is derivable.
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.
Instances For
Delaborator that hides InferenceSystem.Default in uses of the ⇓a notation.