Documentation

Strata.Languages.Core.Env

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Equations
      Instances For
        @[reducible, inline]

        A substitution map from variable identifiers to expressions.

        Equations
        Instances For
          def Core.Env.init (empty_factory : Bool := false) :
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Equations
            • One or more equations did not get rendered due to their size.

            Create a substitution map from all non-global variables to their values.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Core.oldVarSubst (subst : SubstMap) (E : Env) :

              Append subst map to a non-global substitution map.

              Equations
              Instances For
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  Equations
                  Instances For
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For

                        Validate that all @[cases] parameters in a recursive function block reference known datatypes. This is checked at evaluation time because it is an SMT backend limitation, not a type system constraint.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          Add a function to the environment. For recursive functions, checks that the @[cases] attribute was provided (which sets inlineIfConstr), and rejects cases not yet supported for SMT verification (polymorphic recursive functions, missing @[cases] attribute).

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For

                              Insert each (x, v) in xs into the context.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                Equations
                                Instances For
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    Equations
                                    Instances For

                                      Generate a fresh variable using the base name and pre-existing type, if any, from xt.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For

                                        Generate fresh variables using the base names and any pre-existing types from xs.

                                        Equations
                                        Instances For

                                          Insert (xi, .fvar xi), for each xi in xs, in the oldest scope in ss, only if xi is the identifier of a free variable, i.e., it is not in ss.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              def Core.Env.performMerge (cond : Expression.Expr) (E1 E2 : Env) (_h1 : E1.error.isNone = true) (_h2 : E2.error.isNone = true) :
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                def Core.Env.merge (cond : Expression.Expr) (E1 E2 : Env) :
                                                Equations
                                                Instances For
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For