Packages

c

edu.cmu.cs.ls.keymaerax.bellerophon

SearchAndRescueAgain

case class SearchAndRescueAgain(abbr: Seq[Expression], common: BelleExpr, instantiator: (ProvableSig, ProverException) ⇒ Seq[Expression], continuation: BelleExpr) extends BelleExpr with Product with Serializable

SearchAndRescue(abbr, common, instantiator, continuation) alias search abbr := after common among instantiator in continuation postpones the choice for the definition of abbr until tactic common finished on the Provable, but then searches for the definition of abbr by trying to run continuation from the outcome of common until continuation is successful. Each time it asks instantiator to choose a value for abbr based on the same Provable at the end of common in addition to the present ProverException obtained after the current attempt of running continuation with the last choice for abbr. Resumes to the outer proof by a uniform substitution of instantiator(result) for abbr of the resulting provable which corresponds to having run USubst(abbr,inst){ common } ; continuation. Thus, the logical effect is identical to directly running USubst(abbr,inst){ common } ; continuation but the operational effect differs by the above search to find the instantiation inst in the first place.

abbr

the abbreviation to instantie, which should be fresh in the Provable

See also

ProvableSig.apply(USubst)

Andre Platzer. A complete uniform substitution calculus for differential dynamic logic. Journal of Automated Reasoning, 59(2), pp. 219-266, 2017. Example 32.

NoProverException

Linear Supertypes
Serializable, Serializable, Product, Equals, BelleExpr, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SearchAndRescueAgain
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. BelleExpr
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SearchAndRescueAgain(abbr: Seq[Expression], common: BelleExpr, instantiator: (ProvableSig, ProverException) ⇒ Seq[Expression], continuation: BelleExpr)

    abbr

    the abbreviation to instantie, which should be fresh in the Provable

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def &(other: BelleExpr): BelleExpr

    this & other: sequential composition this ; other executes other on the output of this, failing if either fail.

    this & other: sequential composition this ; other executes other on the output of this, failing if either fail.

    Definition Classes
    BelleExpr
  4. def *(n: Int): BelleExpr

    this*n: bounded repetition executes this tactic to times number of times, failing if any of those repetitions fail.

    this*n: bounded repetition executes this tactic to times number of times, failing if any of those repetitions fail.

    Definition Classes
    BelleExpr
  5. def <(children: BelleExpr*): BelleExpr

    <(e1,...,en): branching to run tactic ei on branch i, failing if any of them fail or if there are not exactly n branches.

    <(e1,...,en): branching to run tactic ei on branch i, failing if any of them fail or if there are not exactly n branches.

    Definition Classes
    BelleExpr
    Note

    Equivalent to

    a & Idioms.<(b,c)
  6. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  7. def U(p: (SequentType, (RenUSubst) ⇒ BelleExpr)*): BelleExpr

    case _ of {fi => ei} uniform substitution case pattern applies the first ei such that fi uniformly substitutes to current provable for which ei does not fail, fails if the ei of all matching fi fail.

    case _ of {fi => ei} uniform substitution case pattern applies the first ei such that fi uniformly substitutes to current provable for which ei does not fail, fails if the ei of all matching fi fail.

    Definition Classes
    BelleExpr
  8. val abbr: Seq[Expression]
  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  11. val common: BelleExpr
  12. val continuation: BelleExpr
  13. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  16. def getLocation: Location

    Get the location where this tactic stems from.

    Get the location where this tactic stems from.

    Definition Classes
    BelleExpr
  17. val instantiator: (ProvableSig, ProverException) ⇒ Seq[Expression]
  18. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  19. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  22. def prettyString: String

    pretty-printed form of this Bellerophon tactic expression

    pretty-printed form of this Bellerophon tactic expression

    Definition Classes
    SearchAndRescueAgainBelleExpr
  23. def setLocation(newLocation: Location): Unit

    Definition Classes
    BelleExpr
    Note

    location is private so that it's not something that effects case class quality, and mutable so that it can be ignored when building up custom tactics.

  24. def switch(children: (BelleLabel, BelleExpr)*): BelleExpr
    Definition Classes
    BelleExpr
  25. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  26. def toString(): String
    Definition Classes
    BelleExpr → AnyRef → Any
  27. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  29. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  30. def |(other: BelleExpr): BelleExpr

    this | other: alternative composition executes other if applying this fails, failing if both fail.

    this | other: alternative composition executes other if applying this fails, failing if both fail.

    Definition Classes
    BelleExpr
  31. def |!(other: BelleExpr): BelleExpr

    this |! other: alternative composition executes other if applying this fails (even critically), failing if both fail.

    this |! other: alternative composition executes other if applying this fails (even critically), failing if both fail.

    Definition Classes
    BelleExpr
  32. def ||(other: BelleExpr): BelleExpr
    Definition Classes
    BelleExpr

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from BelleExpr

Inherited from AnyRef

Inherited from Any

Ungrouped