Packages

trait ProvableSig extends AnyRef

A common signature for edu.cmu.cs.ls.keymaerax.pt.ProvableSig's and TermProvable's for use in the btactics package. This allows for tactics to construct proof terms or not depending on which implementation they use.

This file mimics edu.cmu.cs.ls.keymaerax.core.Provable outside the core and forwards all operations to the core.

See also

Provable

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ProvableSig
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type Subgoal = Int

    Position types for the subgoals of a Provable.

Abstract Value Members

  1. abstract def apply(prolongation: ProvableSig): ProvableSig

    Substitute Subderivation Forward: Prolong this Provable with the given prolongation.

    Substitute Subderivation Forward: Prolong this Provable with the given prolongation. This Provable with conclusion G |- D transforms as follows

      G1 |- D1 ... Gn |- Dn                  G1 |- D1 ... Gn |- Dn
    -------------------------       =>     -------------------------
             G |- D                                 G0 |- D0

    provided

             G |- D
    ------------------------- prolongation
            G0 |- D0
    prolongation

    the subderivation used to prolong this Provable. Where subderivation has a subgoal equaling our conclusion.

    returns

    A Provable derivation that proves prolongation's conclusion from our subgoals.

  2. abstract def apply(newConsequence: Sequent, rule: Rule): ProvableSig

    Apply Rule Forward: Apply given proof rule forward in Hilbert style to prolong this Provable to a Provable for concludes.

    Apply Rule Forward: Apply given proof rule forward in Hilbert style to prolong this Provable to a Provable for concludes. This Provable with conclusion G |- D transforms as follows

      G1 |- D1 ... Gn |- Dn                  G1 |- D1 ... Gn |- Dn
    -------------------------       =>     -------------------------
             G |- D                              newConsequence

    provided

             G |- D
    ------------------------- rule
          newConsequence
    newConsequence

    the new conclusion that the rule shows to follow from this.conclusion

    rule

    the proof rule to apply to concludes to reduce it to this.conclusion.

    returns

    A Provable derivation that proves concludes from the same subgoals by using the given proof rule. Will return a Provable with the same subgoals but an updated conclusion.

  3. abstract def apply(ren: URename): ProvableSig
  4. abstract def apply(subst: USubst): ProvableSig

    Apply a uniform substitution to a (locally sound!) Provable.

    Apply a uniform substitution to a (locally sound!) Provable. Substitutes both subgoals and conclusion with the same uniform substitution subst.

     G1 |- D1 ... Gn |- Dn              s(G1) |- s(D1) ... s(Gn) |- s(Dn)
    -----------------------     =>     -----------------------------------   (USR)
             G |- D                                s(G) |- s(D)
    subst

    The uniform substitution (of no free variables) to be used on the premises and conclusion of this Provable.

    returns

    The Provable resulting from applying subst to our subgoals and conclusion.

    See also

    Andre Platzer. A complete uniform substitution calculus for differential dynamic logic. Journal of Automated Reasoning, 59(2), pp. 219-266, 2017. Theorem 26+27."

  5. abstract def apply(subderivation: ProvableSig, subgoal: Subgoal): ProvableSig

    Substitute subderivation as a proof of subgoal.

    Substitute subderivation as a proof of subgoal. Merge: Replace premise subgoal by the given subderivation. Use the given provable derivation in place of the indicated subgoal of this Provable, returning the resulting concatenated Provable.

    In particular, if subderivation.isProved, then the given subgoal will disappear, otherwise it will be replaced by the subgoals of subderivation (with the first subgoal of subderivation in place of subgoal and all other subgoals at the end).

    This function implements the substitution principle for hypotheses.

     G1 |- D1 ... Gi |- Di ... Gn |- Dn              G1 |- D1 ... Gr1 |- Dr1 ... Gn |- Dn Gr2 |- Dr2 ... Grk | Drk
    ------------------------------------     =>     ---------------------------------------------------------------
                   G |- D                                         G |- D

    using the given subderivation

    Gr1 |- Dr1  Gr2 |- Dr2 ... Grk |- Drk
    ------------------------------------ (subderivation)
                 Gi |- Di
    subderivation

    the Provable derivation that proves premise subgoal.

    subgoal

    the index of our subgoal that the given subderivation concludes.

    returns

    A Provable derivation that joins our derivation and subderivation to a joint derivation of our conclusion using subderivation to show our subgoal. Will return a Provable with the same conclusion but an updated set of premises.

  6. abstract def apply(rule: Rule, subgoal: Subgoal): ProvableSig

    Apply Rule: Apply given proof rule to the indicated subgoal of this Provable, returning the resulting Provable

    Apply Rule: Apply given proof rule to the indicated subgoal of this Provable, returning the resulting Provable

     G1 |- D1 ... Gi |- Di ... Gn |- Dn              G1 |- D1 ... Gr1 |- Dr1 ... Gn |- Dn Gr2 |- Dr2 ... Grk | Drk
    ------------------------------------     =>     ---------------------------------------------------------------
                   G |- D                                         G |- D

    using the rule instance

    Gr1 |- Dr1  Gr2 |- Dr2 ... Grk |- Drk
    ------------------------------------ (rule)
                 Gi |- Di
    rule

    the proof rule to apply to the indicated subgoal of this Provable derivation.

    subgoal

    which of our subgoals to apply the given proof rule to.

    returns

    A Provable derivation that proves the premise subgoal by using the given proof rule. Will return a Provable with the same conclusion but an updated set of premises.

  7. abstract val axioms: Map[String, ProvableSig]

    immutable list of Provables of sound axioms, i.e., valid formulas of differential dynamic logic.

    immutable list of Provables of sound axioms, i.e., valid formulas of differential dynamic logic.

        *
    ---------- (axiom)
     |- axiom
    See also

    "Andre Platzer. A uniform substitution calculus for differential dynamic logic. In Amy P. Felty and Aart Middeldorp, editors, International Conference on Automated Deduction, CADE'15, Berlin, Germany, Proceedings, LNCS. Springer, 2015. arXiv 1503.01981, 2015."

  8. abstract val conclusion: Sequent

    the conclusion G |- D that follows if all subgoals are valid.

  9. abstract val defs: Declaration
  10. abstract def prettyString: String

    <invalid inheritdoc annotation>

  11. abstract def proveArithmetic(t: QETool, f: Formula): ProvableSig
  12. abstract def proveArithmeticLemma(t: QETool, f: Formula): Lemma

    Proves a formula f in real arithmetic using an external tool for quantifier elimination.

    Proves a formula f in real arithmetic using an external tool for quantifier elimination.

    t

    The quantifier-elimination tool.

    f

    The formula.

    returns

    a Lemma with a quantifier-free formula equivalent to f and evidence as provided by the tool.

  13. abstract def proved: Sequent

    What conclusion this Provable proves if isProved.

  14. abstract val rules: Map[String, ProvableSig]

    immutable list of Provables of locally sound axiomatic proof rules.

    immutable list of Provables of locally sound axiomatic proof rules.

     Gi |- Di
    ---------- (axiomatic rule)
      G |- D
    See also

    "Andre Platzer. A uniform substitution calculus for differential dynamic logic. In Amy P. Felty and Aart Middeldorp, editors, International Conference on Automated Deduction, CADE'15, Berlin, Germany, Proceedings, LNCS. Springer, 2015. arXiv 1503.01981, 2015."

    Provable.apply(USubst)

  15. abstract def startProof(goal: Formula): ProvableSig

    Begin a new proof for the desired conclusion formula from no antecedent.

    Begin a new proof for the desired conclusion formula from no antecedent.

     |- goal
    ---------
     |- goal
    goal

    the desired conclusion formula for the succedent.

    returns

    a Provable whose subgoals need to be all proved in order to prove goal.

  16. abstract def startProof(goal: Sequent): ProvableSig

    Begin a new proof for the desired conclusion goal

    Begin a new proof for the desired conclusion goal

     goal
    ------
     goal
    goal

    the desired conclusion.

    returns

    a Provable whose subgoals need to be all proved in order to prove goal.

  17. abstract val steps: Int
  18. abstract def sub(subgoal: Subgoal): ProvableSig

    Sub-Provable: Get a sub-Provable corresponding to a Provable with the given subgoal as conclusion.

    Sub-Provable: Get a sub-Provable corresponding to a Provable with the given subgoal as conclusion. Provables resulting from the returned subgoal can be merged into this Provable to prove said subgoal.

    subgoal

    the index of our subgoal for which to return a new open Provable.

    returns

    an initial unfinished open Provable for the subgoal i:

     Gi |- Di
    ----------
     Gi |- Di

    which is suitable for being merged back into this Provable for subgoal i subsequently.

  19. abstract val subgoals: IndexedSeq[Sequent]

    the premises Gi |- Di that, if they are all valid, imply the conclusion.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def apply(fw: (ProvableSig) ⇒ ProvableSig): ProvableSig

    Apply forward tactic on all subgoals.

  5. def apply(fw: (ProvableSig) ⇒ ProvableSig, subgoal: Subgoal): ProvableSig

    Apply forward tactic fw at subgoal.

  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. val axiom: Map[String, Formula]

    immutable list of sound axioms, i.e., valid formulas of differential dynamic logic.

    immutable list of sound axioms, i.e., valid formulas of differential dynamic logic. (convenience method)

  8. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. final def isProved: Boolean

    Checks whether this Provable proves its conclusion.

    Checks whether this Provable proves its conclusion.

    returns

    true if conclusion is proved by this Provable, false if subgoals are missing that need to be proved first.

    See also

    Provable.isProved

  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. def reapply(defs: Declaration): ProvableSig

    Returns a copy of this provable with the definitions replaced by defs.

  20. def reapply(underlying: Provable): ProvableSig

    Returns a copy of this provable with the underlying provable replaced by underlying.

  21. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  22. def toString(): String
    Definition Classes
    AnyRef → Any
  23. val underlyingProvable: Provable

    The core's Provable that this object really represents.

  24. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped