vicramgon / logicus / LogicUS.FOL.Herbrand

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

Signatures


type alias Signature =
( Set ( String
, List Basics.Int )
, Dict ( String
, List Basics.Int ) Basics.Int
, Dict ( String
, List Basics.Int ) Basics.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 : LogicUS.FOL.SyntaxSemantics.FormulaFOL -> Maybe Signature

It calculates the signature of an opened formula

sfolSignature : LogicUS.FOL.SyntaxSemantics.SetFOL -> Maybe Signature

It calculates the signature of a set of opened formulas

Herbrand Works

signatureHerbrandUniverse : Signature -> Basics.Int -> List LogicUS.FOL.SyntaxSemantics.Term

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

ffolHerbrandUniverse : LogicUS.FOL.SyntaxSemantics.FormulaFOL -> Basics.Int -> Maybe (List LogicUS.FOL.SyntaxSemantics.Term)

It generates the Herbrand Universe of an opened formula

sfolHerbrandUniverse : List LogicUS.FOL.SyntaxSemantics.FormulaFOL -> Basics.Int -> Maybe (List LogicUS.FOL.SyntaxSemantics.Term)

It generates the Herbrand Universe of a set of opened formulas

signatureHerbrandBase : Signature -> Basics.Int -> List LogicUS.FOL.SyntaxSemantics.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 : LogicUS.FOL.SyntaxSemantics.FormulaFOL -> Basics.Int -> Maybe (List LogicUS.FOL.SyntaxSemantics.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 : LogicUS.FOL.SyntaxSemantics.SetFOL -> Basics.Int -> Maybe (List LogicUS.FOL.SyntaxSemantics.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 -> Basics.Int -> List (List LogicUS.FOL.SyntaxSemantics.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 : LogicUS.FOL.SyntaxSemantics.FormulaFOL -> Basics.Int -> Maybe (List (List LogicUS.FOL.SyntaxSemantics.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 : LogicUS.FOL.SyntaxSemantics.SetFOL -> Basics.Int -> Maybe (List (List LogicUS.FOL.SyntaxSemantics.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 : LogicUS.FOL.SyntaxSemantics.FormulaFOL -> List LogicUS.FOL.SyntaxSemantics.FormulaFOL -> List LogicUS.FOL.SyntaxSemantics.Term -> Maybe Basics.Bool

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

sfolInterpretsHerbrand : LogicUS.FOL.SyntaxSemantics.SetFOL -> List LogicUS.FOL.SyntaxSemantics.FormulaFOL -> List LogicUS.FOL.SyntaxSemantics.Term -> Maybe Basics.Bool

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

ffolHerbrandModels : LogicUS.FOL.SyntaxSemantics.FormulaFOL -> Basics.Int -> Maybe ( List LogicUS.FOL.SyntaxSemantics.Term, List (List LogicUS.FOL.SyntaxSemantics.FormulaFOL) )

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

sfolHerbrandModels : LogicUS.FOL.SyntaxSemantics.SetFOL -> Basics.Int -> Maybe ( List LogicUS.FOL.SyntaxSemantics.Term, List (List LogicUS.FOL.SyntaxSemantics.FormulaFOL) )

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

ffolHerbrandExtension : LogicUS.FOL.SyntaxSemantics.FormulaFOL -> Basics.Int -> Maybe (List LogicUS.PL.SyntaxSemantics.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 : LogicUS.FOL.SyntaxSemantics.SetFOL -> Basics.Int -> Maybe (List LogicUS.PL.SyntaxSemantics.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