Equations
- Esolangs.Cornucopia.mainName = "main"
Instances For
Equations
- Esolangs.Cornucopia.succName = "succ"
Instances For
Equations
- Esolangs.Cornucopia.subName = "sub"
Instances For
@[instance_reducible]
Equations
@[instance_reducible]
Equations
- Esolangs.Cornucopia.instFintypeBuiltin = { elems := { val := ↑Esolangs.Cornucopia.Builtin.enumList, nodup := Esolangs.Cornucopia.Builtin.enumList_nodup }, complete := Esolangs.Cornucopia.instFintypeBuiltin._proof_1 }
@[instance_reducible]
@[instance_reducible]
@[instance_reducible]
Equations
@[instance_reducible]
Equations
@[instance_reducible]
Equations
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Esolangs.Cornucopia.Prog.ofDefs defs = { defs := Esolangs.Cornucopia.builtinDefs ∪ Map.ofList defs }
Instances For
Equations
- prog.main = prog.def Esolangs.Cornucopia.mainName
Instances For
@[irreducible]
Equations
- Esolangs.Cornucopia.Expr.WF prog arity (Esolangs.Cornucopia.Expr.arg i) = (i < arity)
- Esolangs.Cornucopia.Expr.WF prog arity (Esolangs.Cornucopia.Expr.call t args) = (prog.HasDef t ∧ args.length = prog.arity t ∧ ∀ e ∈ args, Esolangs.Cornucopia.Expr.WF prog arity e)
Instances For
Equations
- Esolangs.Cornucopia.Def.WF prog d = Esolangs.Cornucopia.Expr.WF prog d.arity d.expr
Instances For
@[irreducible]
def
Esolangs.Cornucopia.Expr.eval
(e : Expr)
(prog : Prog)
(fs : Map String (List ℕ → ℕ))
(args : List ℕ)
:
Equations
- (Esolangs.Cornucopia.Expr.arg i).eval prog fs args = args[i]!
- (Esolangs.Cornucopia.Expr.call t args_1).eval prog fs args = Map.get! t fs (List.map (fun (x : Esolangs.Cornucopia.Expr) => x.eval prog fs args) args_1)