final class MLValueTyp extends Typ
A Typ that is stored in the Isabelle process's object store and may or may not be known in Scala. Use concrete to get a representation of the same type as a ConcreteTyp.
- Source
- Typ.scala
- Alphabetic
- By Inheritance
- MLValueTyp
- Typ
- 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: Typ): Type
t -->: uis shorthand forType("fun", t, u), i.e., for a function fromttou.t -->: uis shorthand forType("fun", t, u), i.e., for a function fromttou.- Definition Classes
- Typ
-
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
- MLValueTyp → FutureValue
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
def
computeMlValue: MLValue[Typ]
- Attributes
- protected
- Definition Classes
- MLValueTyp → Typ
-
lazy val
concrete: ConcreteTyp
Transforms this term into a ConcreteTyp.
Transforms this term into a ConcreteTyp. A ConcreteTyp guarantees that the Scala-type of the Typ (Type,TFree,TVar) corresponds to the top-level constructor on Isabelle side (
Type,TFree,TVar).- Definition Classes
- MLValueTyp → Typ
-
def
concreteComputed: Boolean
Indicates whether concrete has already been initialized.
Indicates whether concrete has already been initialized. (I.e., whether it can be accessed without delay and without incurring communication with the Isabelle process.
- Definition Classes
- MLValueTyp → Typ
- Annotations
- @inline()
-
def
concreteRecursive(implicit isabelle: Isabelle): ConcreteTyp
Transforms this typ into a ConcreteTyp (see concrete).
Transforms this typ into a ConcreteTyp (see concrete). In contrast to concrete, it also replaces all subtypes by concrete subterms.
- Definition Classes
- MLValueTyp → Typ
-
def
disconnectFromIsabelle(): Unit
Does not do anything.
Does not do anything.
- Definition Classes
- MLValueTyp → Typ
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
equals(that: Any): Boolean
Equality of types.
Equality of types. Returns true iff the two Typ instances represent the same type in the Isabelle process. (E.g., a Ctyp and a TFree 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.)
As a side effect, comparing two types makes their mlValues equal (if the equality test returned true). This means that comparing terms can reduce memory use on the Isabelle side (because duplicate types are released), and future equality checks will be faster. Note: if both compared values already have ML Values, then the one from
thiswill be copied tothat(so the order matters).- Definition Classes
- Typ → AnyRef → Any
-
def
force: MLValueTyp.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
- FutureValue
-
def
forceFuture(implicit isabelle: Isabelle): Future[MLValueTyp.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() @IntrinsicCandidate()
-
def
hashCode(): Int
Hash code compatible with equals.
- Definition Classes
- MLValueTyp → Typ → AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
implicit
val
isabelle: Isabelle
Isabelle instance relative to which this type was constructed.
Isabelle instance relative to which this type was constructed.
- Definition Classes
- MLValueTyp → Typ
-
final
def
mlValue: MLValue[Typ]
Transforms this type into an MLValue containing this type.
Transforms this type into an MLValue containing this type. This causes transfer of the type to Isabelle only the first time it is accessed (and not at all if the type came from the Isabelle process in the first place).
The MLValue can change over time but will always be an MLValue for an equal type.
- Definition Classes
- Typ
-
final
def
mlValueLoaded: Boolean
Is an mlValue currently available without computation?
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
peekMlValue: Option[MLValue[Typ]]
Same as mlValue but may return
Noneif no MLValue is currently available. -
def
pretty(ctxt: Context, symbols: Symbols = Symbols.globalInstance): 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): 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
- Typ → 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
- MLValueTyp → 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 type.
Produces a string representation of this type.
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).
- Definition Classes
- MLValueTyp → Typ → AnyRef → Any
- See also
pretty for pretty printed type
-
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( ... )