package fol
- Alphabetic
- Public
- All
Type Members
- trait CountingFormulas extends AnyRef
-
class
FOLPosition
extends AnyRef
Positions are given as lists of Integers.
Positions are given as lists of Integers. The empty list denotes the current expression itself. A list starting with k denotes a subexpression in the kth argument of the current expression.
- class TseitinCNF extends AnyRef
-
class
reduceHolToFol
extends AnyRef
Creates a FOL formula from a HOL formula, but applies transformations which do _not_ preserve validity! Transformations applied:
Creates a FOL formula from a HOL formula, but applies transformations which do _not_ preserve validity! Transformations applied:
- Replace all subterms (\x.t[v]) by a function q_n(v). The scope parameter is needed to pass existing term-constant mappings.
- Change the type of constants and variables s.t. they are first order (i.e. Const("c", To->Ti) is mapped to FOLConst("c",Ti)
- Logical operators inside the term structure are replaced by first order terms
- Note
Make sure you need all of these tricks. To only replace abstraction subterms, use replaceAbstractions.
-
class
replaceAbstractions
extends AnyRef
Replace lambda-abstractions by constants.
Replace lambda-abstractions by constants.
Each abstraction in an at.logic.gapt.proofs.HOLSequent is replaced by a separate constant symbol; the used constants are returned in a Map.
-
class
undoReplaceAbstractions
extends AnyRef
Replaces the constants introduced by replaceAbstractions with the original lambda-abstractions.
Value Members
- object BinaryConnective
-
object
Delta
Matcher for Deltan A FOLFormula f will match Delta(k) if it is both Sigmak and Pik, but not Sigmak-1 or Pik-1.
-
object
FOLFunctionArgs
Unsafely extracts the function arguments from a term.
Unsafely extracts the function arguments from a term. Fails if the term is not a function.
-
object
FOLFunctionName
Unsafely extracts the function name from a term.
Unsafely extracts the function name from a term. Fails if the term is not a function.
- object FOLPosition
- object Numeral
-
object
Pi
Matcher for Pin A FOLFormula f will match Pi(k) if f is Pik, but not Pik-1.
-
object
Sigma
Matcher for Sigman A FOLFormula f will match Sigma(k) if f is Sigmak, but not Sigmak-1.
- object TseitinCNF
- object Utils
-
object
changeTypeIn
Introducing abstractions and converting to fol changes more complex types to fol compatible ones.
Introducing abstractions and converting to fol changes more complex types to fol compatible ones. With changeTypeIn you can change them back.
-
object
folSubTerms
Generation of first-order subterms (note that this notion differs from lambda subterms).
- object folTermSize
- object getArityOfConstants
- object isFOLFunction
- object isFOLPrenexPi1
- object isFOLPrenexSigma1
- object naive extends CountingFormulas
- object reduceHolToFol extends reduceHolToFol
- object replaceAbstractions extends replaceAbstractions
- object thresholds extends CountingFormulas
-
object
undoHol2Fol
extends Logger
This is implements some heuristics to convert a fol formula obtained by at.logic.gapt.expr.fol.replaceAbstractions and at.logic.gapt.expr.fol.reduceHolToFol back to its original signature.
This is implements some heuristics to convert a fol formula obtained by at.logic.gapt.expr.fol.replaceAbstractions and at.logic.gapt.expr.fol.reduceHolToFol back to its original signature. Sometimes, types have to be guessed and the code is poorly tested, so it is unclear how general it is. It works (and is necessary) during the acnf creation of the n-tape proof.
To extract a signature, use the undoHol2Fol.getSignature, to to the back translation use undoHol2Fol.backtranslate.
- object undoReplaceAbstractions extends undoReplaceAbstractions