case class ETDefinedAtom(atom: HOLAtom, polarity: Polarity, definedExpr: LambdaExpression) extends ExpansionTree with Product with Serializable
A tree whose deep formula is an atom, and whose shallow formula is the definitional expansion of the atom.
This tree is used as an intermediate data structure during proof import from clausal provers. During clausification, it is often advantageous to abbreviate subformulas by fresh atoms. (This is necessary for polynomial-time clausification.) These subformula abbreviations are then translated into expansion trees using defined atoms and extra axioms. If we replace a subformula φ(x,y) by the atom D(x,y), then we have an ETDefinedAtom(D(x,y), ..., λxλy φ(x,y)) as an expansion of the subformula, as well as expansions of the extra axiom ∀x∀y(D(x,y) <-> φ(x,y)).
Another way to view defined atoms is the extracted expansions of non-atomic logical axioms in LK. Consider a proof in LK of φ:-φ that consists of just LogicalAxiom(φ). Instead of first performing an atomic expansion, we could directly extract an expansion proof with defined atoms: ETDefinedAtom(D, InAnt, φ) :- ETDefinedAtom(D, InSuc, φ) This expansion proof has the deep sequent D:-D and the shallow sequent φ:-φ. (NB: this extraction is not implemented.)
- atom
The atom (whose predicate symbol is defined)
- polarity
Polarity of the atom.
- definedExpr
Definitional expansion of the predicate symbol.
- Source
- expansionTrees.scala
- Alphabetic
- By Inheritance
- ETDefinedAtom
- Serializable
- Serializable
- ExpansionTree
- DagProof
- Product
- Equals
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
ETDefinedAtom(atom: HOLAtom, polarity: Polarity, definedExpr: LambdaExpression)
- atom
The atom (whose predicate symbol is defined)
- polarity
Polarity of the atom.
- definedExpr
Definitional expansion of the predicate symbol.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
+(other: String): String
- Implicit
- This member is added by an implicit conversion from ETDefinedAtom to any2stringadd[ETDefinedAtom] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
-
def
->[B](y: B): (ETDefinedAtom, B)
- Implicit
- This member is added by an implicit conversion from ETDefinedAtom to ArrowAssoc[ETDefinedAtom] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
apply(pos: HOLPosition): Set[ExpansionTree]
- Definition Classes
- ExpansionTree
- val arguments: List[LambdaExpression]
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- val atom: HOLAtom
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
dagLike: DagLikeOps[ExpansionTree]
Operations that view the sub-proofs as a DAG, which ignore duplicate sub-proofs, see DagProof.DagLikeOps for a list.
Operations that view the sub-proofs as a DAG, which ignore duplicate sub-proofs, see DagProof.DagLikeOps for a list.
- Definition Classes
- DagProof
-
def
deep: HOLAtom
The formula represented by this tree, fully instantiated.
The formula represented by this tree, fully instantiated.
- Definition Classes
- ETDefinedAtom → ExpansionTree
- val definedExpr: LambdaExpression
- val definition: Definition
- val definitionConst: Const
-
def
depth: Int
Depth of the proof, which is the maximum length of a path you can take via immediateSubProofs.
Depth of the proof, which is the maximum length of a path you can take via immediateSubProofs.
- Definition Classes
- DagProof
-
def
ensuring(cond: (ETDefinedAtom) ⇒ Boolean, msg: ⇒ Any): ETDefinedAtom
- Implicit
- This member is added by an implicit conversion from ETDefinedAtom to Ensuring[ETDefinedAtom] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: (ETDefinedAtom) ⇒ Boolean): ETDefinedAtom
- Implicit
- This member is added by an implicit conversion from ETDefinedAtom to Ensuring[ETDefinedAtom] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean, msg: ⇒ Any): ETDefinedAtom
- Implicit
- This member is added by an implicit conversion from ETDefinedAtom to Ensuring[ETDefinedAtom] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean): ETDefinedAtom
- Implicit
- This member is added by an implicit conversion from ETDefinedAtom to Ensuring[ETDefinedAtom] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(that: Any): Boolean
- Definition Classes
- DagProof → Equals → AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from ETDefinedAtom to StringFormat[ETDefinedAtom] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
val
hashCode: Int
- Definition Classes
- DagProof
-
def
immediateSubProofs: Seq[Nothing]
The immediate subproofs of this rule.
The immediate subproofs of this rule.
- Definition Classes
- ETDefinedAtom → DagProof
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
longName: String
The name of this rule (in words).
The name of this rule (in words).
- Definition Classes
- DagProof
-
def
name: String
The name of this rule (in symbols).
The name of this rule (in symbols).
- Definition Classes
- DagProof
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
val
polarity: Polarity
- Definition Classes
- ETDefinedAtom → ExpansionTree
-
val
shallow: HOLFormula
- Definition Classes
- ETDefinedAtom → ExpansionTree
-
def
stepString(subProofLabels: Map[Any, String]): String
- Attributes
- protected
- Definition Classes
- DagProof
-
def
subProofAt(pos: List[Int]): ExpansionTree
Returns the subproof at the given position: p.subProofAt(Nil) is p itself; p.subProofAt(i :: is) is the ith subproof of p.subProofAt(is).
Returns the subproof at the given position: p.subProofAt(Nil) is p itself; p.subProofAt(i :: is) is the ith subproof of p.subProofAt(is).
- Definition Classes
- DagProof
-
def
subProofs: Set[ExpansionTree]
Set of all (transitive) sub-proofs including this.
Set of all (transitive) sub-proofs including this.
- Definition Classes
- DagProof
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toSigRelativeString(implicit sig: BabelSignature): String
- Definition Classes
- ExpansionTree
-
def
toString(): String
- Definition Classes
- ExpansionTree → DagProof → AnyRef → Any
-
def
treeLike: TreeLikeOps[ExpansionTree]
Operations that view the sub-proofs as a tree, see DagProof.TreeLikeOps for a list.
Operations that view the sub-proofs as a tree, see DagProof.TreeLikeOps for a list.
- Definition Classes
- DagProof
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
→[B](y: B): (ETDefinedAtom, B)
- Implicit
- This member is added by an implicit conversion from ETDefinedAtom to ArrowAssoc[ETDefinedAtom] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc