final class Cterm extends Term
Represents a cterm in Isabelle. In Isabelle, a cterm must be explicitly converted into a term.
In contrast, this class inherits from Term, so no explicit conversions are needed. (They happen automatically on
demand.)
A Cterm is always well-typed relative to the context for which it was
created (this is ensured by the Isabelle trusted core).
- Source
- Term.scala
- Alphabetic
- By Inheritance
- Cterm
- Term
- PrettyPrintable
- FutureValue
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
$(that: Term)(implicit ec: ExecutionContext): App
t $ uis shorthand for App(t,u) -
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
await: Unit
Blocks until this future value is computed.
Blocks until this future value is computed. (Or throws an exception if the computation fails.)
- Definition Classes
- Cterm → FutureValue
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
lazy val
concrete: ConcreteTerm
Transforms this term into a ConcreteTerm.
Transforms this term into a ConcreteTerm. A ConcreteTerm guarantees that the type of the term (App,Const,Abs...) corresponds to the top-level constructor on Isabelle side (
$,Const,Abs, ...). -
def
concreteComputed: Boolean
Indicates whether concrete has already been initialized.
-
def
concreteRecursive(implicit ec: ExecutionContext): ConcreteTerm
Transforms this term into a ConcreteTerm (see concrete).
Transforms this term into a ConcreteTerm (see concrete). In contrast to concrete, it also replaces all subterms by concrete subterms.
- val ctermMlValue: MLValue[Cterm]
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(that: Any): Boolean
Equality of terms.
Equality of terms. Returns true iff the two Term instances represent the same term in the Isabelle process. (E.g., a Cterm and a Const can be equal.) May throw an exception if the computation of the terms fails. (But will not fail if await or a related FutureValue method has returned successfully on both terms.)
- Definition Classes
- Term → AnyRef → Any
-
def
fastType(implicit executionContext: ExecutionContext): Typ
Returns the type of this term, assuming the term is well-typed.
Returns the type of this term, assuming the term is well-typed. (The function does not verify whether the term is indeed well-typed. If it is not, no guarantee is made what type is returned.)
This method is analogous to
fastype_ofin Isabelle/ML but avoids transferring the term to/from Isabelle when determining the type.- Definition Classes
- Term
-
def
force: Cterm.this.type
Waits till the computation of this value (in the Isabelle process) has finished.
Waits till the computation of this value (in the Isabelle process) has finished. (Or until an exception is thrown.)
- returns
this value, but it is guaranteed to have completed the computation
- Definition Classes
- Cterm → FutureValue
-
def
forceFuture(implicit ec: ExecutionContext): Future[Cterm.this.type]
A future containing this object with the computation completed.
A future containing this object with the computation completed. In particular, if this value throws an exception upon computation, the future holds that exception.
- Definition Classes
- FutureValue
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
Hash code compatible with equals.
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
implicit
val
isabelle: Isabelle
Isabelle instance relative to which this term was constructed.
-
lazy val
mlValue: MLValue[Term]
Returns this term as an
MLValue[Term](notMLValue[Cterm]).Returns this term as an
MLValue[Term](notMLValue[Cterm]). The difference is crucial becauseMLValue[_]is not covariant. So for invoking ML functions that expect an argument of typeterm, you need to get anMLValue[Term]. In contrast, ctermMlValue returns this term as anMLValue[Cterm]. -
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
pretty(ctxt: Context, symbols: Symbols = Symbols.globalInstance)(implicit ec: ExecutionContext): String
Produces a string representation of this object.
Produces a string representation of this object. Uses the Isabelle pretty printer.
- ctxt
The Isabelle proof context to use (this contains syntax declarations etc.)
- symbols
Instance of Symbols for converting to Unicode. Default: global default instance Symbols.globalInstance. Use prettyRaw to avoid conversion to Unicode.
- Definition Classes
- PrettyPrintable
- Annotations
- @NotNull()
-
def
prettyRaw(ctxt: Context)(implicit ec: ExecutionContext): String
Produces a string representation of this object.
Produces a string representation of this object. Uses the Isabelle pretty printer. Does not convert to Unicode, i.e., the return value will contain substrings such as
\<forall>)- ctxt
The Isabelle proof context to use (this contains syntax declarations etc.)
- Definition Classes
- Cterm → Term → PrettyPrintable
-
def
someFuture: Future[Any]
Returns a future that completes when the computation of this object is complete.
Returns a future that completes when the computation of this object is complete. (Or that holds an exception if that computation throws an exception.) However, upon successful completion, the future may return an arbitrary (and thus useless) value. May be faster to implement than forceFuture because there may be already a future available but that returns the wrong value.
- Definition Classes
- Cterm → FutureValue
-
def
stateString: String
A utility method that returns "" if this value was successfully computed, " (computing)" if it still computes, and " (failed)" if it finished with an exception.
A utility method that returns "" if this value was successfully computed, " (computing)" if it still computes, and " (failed)" if it finished with an exception.
This can be useful to constructing human readable messages about this value.
- Definition Classes
- FutureValue
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString: String
Produces a string representation of this term.
Produces a string representation of this term.
This is not a "pretty" representation, it does not use Isabelle syntax, and subterms that are stored only in the Isabelle process are replaced with a placeholder (thus this method does not invoke any potentially communication with the Isabelle process).
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )