case class InductionRule(cases: Seq[InductionCase], formula: Abs, term: Expr) extends NDProof with CommonRule with Product with Serializable
An NDProof ending with an induction rule:
(π,,1,,) (π,,2,,) (π,,n,,) case 1 case 2 ... case n -------------------------------------(ind) Γ :- F(t: indTy)
This induction rule can handle inductive data types. The cases are proofs that the various type constructors preserve the formula we want to prove. They are provided via the InductionCase class.
- cases
A sequence of proofs showing that each type constructor preserves the validity of the main formula.
- formula
The formula we want to prove via induction.
- Source
- nd.scala
- Alphabetic
- By Inheritance
- InductionRule
- Serializable
- Serializable
- CommonRule
- ContextRule
- NDProof
- SequentProof
- DagProof
- Product
- Equals
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
InductionRule(cases: Seq[InductionCase], formula: Abs, term: Expr)
- cases
A sequence of proofs showing that each type constructor preserves the validity of the main formula.
- formula
The formula we want to prove via induction.
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 InductionRule to any2stringadd[InductionRule] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
-
def
->[B](y: B): (InductionRule, B)
- Implicit
- This member is added by an implicit conversion from InductionRule to ArrowAssoc[InductionRule] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
NDRuleCreationException(message: String): NDRuleCreationException
- Definition Classes
- NDProof
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
auxFormulas: Seq[Seq[Formula]]
A list of lists containing the auxiliary formulas of the rule.
A list of lists containing the auxiliary formulas of the rule. The first list constains the auxiliary formulas in the first premise and so on.
- Definition Classes
- SequentProof
-
def
auxIndices: Seq[Seq[SequentIndex]]
A list of lists of SequentIndices denoting the auxiliary formula(s) of the rule.
A list of lists of SequentIndices denoting the auxiliary formula(s) of the rule. The first list contains the auxiliary formulas in the first premise and so on.
- Definition Classes
- InductionRule → SequentProof
- val cases: Seq[InductionCase]
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
lazy val
conclusion: Sequent[Formula]
The conclusion of the rule.
The conclusion of the rule.
- Definition Classes
- ContextRule → SequentProof
-
def
contexts: Seq[Sequent[Formula]]
- Attributes
- protected
- Definition Classes
- ContextRule
-
def
dagLike: DagLikeOps[NDProof]
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
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 eigenVariables: Set[Var]
-
final
def
endSequent: Sequent[Formula]
The end-sequent of the rule.
The end-sequent of the rule.
- Definition Classes
- NDProof
-
def
ensuring(cond: (InductionRule) ⇒ Boolean, msg: ⇒ Any): InductionRule
- Implicit
- This member is added by an implicit conversion from InductionRule to Ensuring[InductionRule] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: (InductionRule) ⇒ Boolean): InductionRule
- Implicit
- This member is added by an implicit conversion from InductionRule to Ensuring[InductionRule] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean, msg: ⇒ Any): InductionRule
- Implicit
- This member is added by an implicit conversion from InductionRule to Ensuring[InductionRule] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean): InductionRule
- Implicit
- This member is added by an implicit conversion from InductionRule to Ensuring[InductionRule] 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 InductionRule to StringFormat[InductionRule] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
- val formula: Abs
-
def
formulasToBeDeleted: Seq[Seq[SequentIndex]]
- Attributes
- protected
- Definition Classes
- ContextRule
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
val
hashCode: Int
- Definition Classes
- DagProof
-
def
immediateSubProofs: Seq[NDProof]
The immediate subproofs of this rule.
The immediate subproofs of this rule.
- Definition Classes
- InductionRule → DagProof
- val indTy: Ty
-
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
- val mainFormula: Formula
-
def
mainFormulaSequent: Sequent[Formula]
- Attributes
- protected
- Definition Classes
- InductionRule → ContextRule
-
def
mainFormulas: Seq[Formula]
The list of main formulas of the rule.
The list of main formulas of the rule.
- Definition Classes
- SequentProof
-
def
mainIndices: Vector[SequentIndex]
A list of SequentIndices denoting the main formula(s) of the rule.
A list of SequentIndices denoting the main formula(s) of the rule.
- Definition Classes
- ContextRule → SequentProof
-
def
name: String
The name of this rule (in symbols).
The name of this rule (in symbols).
- Definition Classes
- InductionRule → DagProof
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
occConnectors: Seq[SequentConnector]
A list of occurrence connectors, one for each immediate subproof.
A list of occurrence connectors, one for each immediate subproof.
- Definition Classes
- ContextRule → SequentProof
-
def
premises: Seq[Sequent[Formula]]
The upper sequents of the rule.
The upper sequents of the rule.
- Definition Classes
- SequentProof
-
def
productArity: Int
- Definition Classes
- InductionRule → Product
-
def
productElement(n: Int): Any
- Definition Classes
- InductionRule → Product
- val qfFormula: Expr
- val quant: Var
-
def
stepString(subProofLabels: Map[Any, String]): String
- Attributes
- protected
- Definition Classes
- SequentProof → DagProof
-
def
subProofAt(pos: List[Int]): NDProof
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[NDProof]
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
- val term: Expr
-
def
toString(): String
- Definition Classes
- DagProof → AnyRef → Any
-
def
treeLike: TreeLikeOps[NDProof]
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
-
def
validateIndices(premise: HOLSequent, antecedentIndices: Seq[SequentIndex]): Unit
Checks whether indices are in the right place and premise is defined at all of them.
Checks whether indices are in the right place and premise is defined at all of them.
- premise
The sequent to be checked.
- antecedentIndices
Indices that should be in the antecedent.
- Attributes
- protected
- Definition Classes
- NDProof
-
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): (InductionRule, B)
- Implicit
- This member is added by an implicit conversion from InductionRule to ArrowAssoc[InductionRule] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc