logicUSLIB/logicus-fol/1.0.0

NOTE: the latest version is 3.3.0

LogicUS.FOL.Herbrand

The module provides the tools for applying Herbrand works over First Order Logic

Signatures

type alias Signature =
( Set ( String, List Int )
, Dict ( String, List Int ) Int
, Dict ( String, List Int ) Int
)

A signature is a 3-tuple with the constants, the functions symbols with its arity and the predicate symbols with its arity that apears in one (or a set of) opened formula(s).

ffolSignature : FormulaFOL -> Maybe Signature

It calculates the signature of an opened formula

sfolSignature : SetFOL -> Maybe Signature

It calculates the signature of a set of opened formulas

Herbrand Works

signatureHerbrandUniverse : Signature -> Int -> List Term

It generates the Herbrand Universe of n-order according to a Signature

ffolHerbrandUniverse : FormulaFOL -> Int -> Maybe (List Term)

It generates the Herbrand Universe of an opened formula

sfolHerbrandUniverse : List FormulaFOL -> Int -> Maybe (List Term)

It generates the Herbrand Universe of a set of opened formulas

signatureHerbrandBase : Signature -> Int -> List FormulaFOL

It generates a the Herbrand Base of n-order from a signature. That is, the set of all possible atoms for a signature wich corresponds to the applicatiion of each symbol of predicate (of arity k) over each k-tuple of elements of n-order universe Herbrand

ffolHerbrandBase : FormulaFOL -> Int -> Maybe (List FormulaFOL)

It generates a the Herbrand Base of n-order from an opened formula. That is, a set of all posible atoms formed with the predicate symbosl of a formula, cosidering all the posible substitutions with the n-order Herbrand Unviverse elements.

sfolHerbrandBase : SetFOL -> Int -> Maybe (List FormulaFOL)

It generates a the Herbrand Base of n-order from a set of opened formulas. That is, a set of opened and closed formulas where all posible substitutions with the n-order Herbrand Unviverse elements.

signatureHerbrandInterpretations : Signature -> Int -> List (List FormulaFOL)

It generates all the possible Herbrand Interpretations of n-order from a signature. That is, all the possible subsets of the n-order Herbrand Basis associated to the signature.

ffolHerbrandInterpretations : FormulaFOL -> Int -> Maybe (List (List FormulaFOL))

It generates all the possible Herbrand Interpretations of n-order from a opened formula. That is, all the possible subsets of the n-order Herbrand Basis associated to the formula

sfolHerbrandInterpretations : SetFOL -> Int -> Maybe (List (List FormulaFOL))

It generates all the possible Herbrand Interpretations of n-order from a set of opened formulas. That is, all the possible subsets of the n-order Herbrand Basis associated to the formula

ffolInterpretsHerbrand : FormulaFOL -> List FormulaFOL -> List Term -> Maybe Bool

It valuates a Formula regarding to a Herbrand Interpretation and Herbrand Universe

sfolInterpretsHerbrand : SetFOL -> List FormulaFOL -> List Term -> Maybe Bool

It valuates a set of opened formulas regarding to a Herbrand Interpretation and Herbrand Universe

ffolHerbrandModels : FormulaFOL -> Int -> Maybe ( List Term, List (List FormulaFOL) )

It searches Herbrand Models of n-order from a opened formula.

sfolHerbrandModels : SetFOL -> Int -> Maybe ( List Term, List (List FormulaFOL) )

It searches Herbrand Models of n-order from a set of opened formulas.

ffolHerbrandExtension : FormulaFOL -> Int -> Maybe (List FormulaPL)

It calculates the n-order Herbrand Extension vinculated to an opened formula. That is it gives a set of propositional formulas partially equiconsistent with the FOL formula

sfolHerbrandExtension : SetFOL -> Int -> Maybe (List FormulaPL)

It calculates the n-order Herbrand Extension vinculated to a set of opened formulas. That is it gives a set of propositional formulas partially equiconsistent with the FOL formula