Immutable variable-binding context shared across all domains.
Bindings map names to fully-reduced _Values (a number, a matrix, a boolean) — never to a symbolic expression. Kept in core because eval takes one, and core must not depend on any domain.
withBinding returns a new Environment; the original is unchanged (structural sharing).
Value parameters
- precision
-
decimal places used when rendering numbers
- semantics
-
the t-norm / t-conorm pair the logic connectives evaluate with; defaults to LogicSemantics.MinMax. Like
symmetricLogicthis is a knob oneval, not a separate node hierarchy. - symmetricLogic
-
when
true, the digits{-1, 0, 1}are read as the symmetric ternary spelling of{false, unknown, true}in logical connective positions, and truth values render in that alphabet. This is an encoding toggle, not a semantics: the min–max rule table is untouched and the two alphabets are related by the affine mapt = (s + 1) / 2(seecore._Truth.fromSymmetric). Defaults tofalse, thefalse/unknown/truespelling. - workingPrecision
-
decimal digits an irrational is approximated to before exact arithmetic continues. Read by
evalwherever a _Rational meets an operation that is not closed over the rationals. Note this is not the exact-mode switch: whether a value is exact is carried by its own type, so the only component that has to be told is the parser, which decides what a literal becomes. That flag lives incli.Sessionbesidepretty; anEnvironment.exactfield would be read by nothing.
Attributes
- Companion
- object
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any