| Copyright | (c) Leon Vatthauer 2026 |
|---|---|
| License | GPL-3 |
| Maintainer | Leon Vatthauer <leon.vatthauer@fau.de> |
| Stability | experimental |
| Portability | non-portable (ghc-wasm-meta) |
| Safe Haskell | None |
| Language | GHC2024 |
Specification.Types
Description
This module defines specification types that mirror Term, Formula,
tAssumption and Proof for describing Fitch proof rules.
Synopsis
- type ProofSpec = ([AssumptionSpec], FormulaSpec)
- data RuleSpec = RuleSpec [FormulaSpec] [ProofSpec] FormulaSpec
- ruleSpecTex :: RuleSpec -> Text
- data Subst a = Subst Name a
- (~>) :: Name -> a -> Subst a
- data TermSpec
- data FormulaSpec
- data AssumptionSpec
Rule specifications
type ProofSpec = ([AssumptionSpec], FormulaSpec) Source #
Specification of a referenced Proof premise,
containing the specification of its Assumptions and its conclusion.
The specification of a Fitch rule.
Constructors
| RuleSpec | A |
Fields
| |
Instances
Term and Formula specifications
A substitution of a named placeholder by some value.
Constructors
| TVar Name | A term variable. |
| TFun Name [TermSpec] | A function application. |
| TPlaceholder Name | A placeholder for |
data FormulaSpec Source #
Constructors
| FSubst Name (Subst Name) | A substitution |
| FPlaceholder Name | A placeholder for |
| FPred Name [TermSpec] | A predicate. |
| FInfixPred Name TermSpec TermSpec | An infix predicate. |
| FOpr Text [FormulaSpec] | An n-ary operator. |
| FQuantifier Name Name FormulaSpec | A quantifier |
Instances
| PrettyPrint FormulaSpec Source # | |
Defined in Specification.Types Methods prettyPrint :: FormulaSpec -> Text Source # | |
| Show FormulaSpec Source # | |
Defined in Specification.Types Methods showsPrec :: Int -> FormulaSpec -> ShowS # show :: FormulaSpec -> String # showList :: [FormulaSpec] -> ShowS # | |
| Eq FormulaSpec Source # | |
Defined in Specification.Types | |
data AssumptionSpec Source #
An Assumption specification used in RuleSpec specifications.
Constructors
| AssumptionSpec FormulaSpec | Regular |
| FFreshVar Name | A fresh-variable constraint |
Instances
| PrettyPrint AssumptionSpec Source # | |
Defined in Specification.Types Methods prettyPrint :: AssumptionSpec -> Text Source # | |
| Show AssumptionSpec Source # | |
Defined in Specification.Types Methods showsPrec :: Int -> AssumptionSpec -> ShowS # show :: AssumptionSpec -> String # showList :: [AssumptionSpec] -> ShowS # | |
| Eq AssumptionSpec Source # | |
Defined in Specification.Types Methods (==) :: AssumptionSpec -> AssumptionSpec -> Bool # (/=) :: AssumptionSpec -> AssumptionSpec -> Bool # | |