Documentation

Init.Data.AC

structure Lean.Data.AC.Variable {α : Sort u} (op : ααα) :
structure Lean.Data.AC.Context (α : Sort u) :
Instances For
class Lean.Data.AC.EvalInformation (α : Sort u) (β : Sort v) :
Sort (max (max 1 u) v)
  • arbitrary : αβ
  • evalOp : αβββ
  • evalVar : αNatβ
Instances
def Lean.Data.AC.Context.var {α : Sort u_1} (ctx : Context α) (idx : Nat) :
Equations
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.
def Lean.Data.AC.removeNeutrals {α : Sort u_1} [info : ContextInformation α] (ctx : α) :
Equations
def Lean.Data.AC.removeNeutrals.loop {α : Sort u_1} [info : ContextInformation α] (ctx : α) :
Equations
def Lean.Data.AC.norm {α : Sort u_1} [info : ContextInformation α] (ctx : α) (e : Expr) :
Equations
  • One or more equations did not get rendered due to their size.
noncomputable def Lean.Data.AC.List.two_step_induction {motive : List NatSort u} (l : List Nat) (empty : motive []) (single : (a : Nat) → motive [a]) (step : (a b : Nat) → (l : List Nat) → motive (b :: l)motive (a :: b :: l)) :
motive l
Equations
  • One or more equations did not get rendered due to their size.
theorem Lean.Data.AC.Context.mergeIdem_head2 {x y : Nat} {ys : List Nat} (h : x y) :
mergeIdem (x :: y :: ys) = x :: mergeIdem (y :: ys)
theorem Lean.Data.AC.Context.evalList_insert {α : Sort u_1} (ctx : Context α) (h : Std.Commutative ctx.op) (x : Nat) (xs : List Nat) :
evalList α ctx (insert x xs) = evalList α ctx (x :: xs)
theorem Lean.Data.AC.Context.evalList_sort_congr {α : Sort u_1} {a b c : List Nat} (ctx : Context α) (h : Std.Commutative ctx.op) (h₂ : evalList α ctx a = evalList α ctx b) (h₃ : a []) (h₄ : b []) :
evalList α ctx (sort.loop a c) = evalList α ctx (sort.loop b c)
theorem Lean.Data.AC.Context.evalList_sort_loop_swap {α : Sort u_1} {y : Nat} (ctx : Context α) (h : Std.Commutative ctx.op) (xs ys : List Nat) :
evalList α ctx (sort.loop xs (y :: ys)) = evalList α ctx (sort.loop (y :: xs) ys)
theorem Lean.Data.AC.Context.evalList_sort_cons {α : Sort u_1} (ctx : Context α) (h : Std.Commutative ctx.op) (x : Nat) (xs : List Nat) :
evalList α ctx (sort (x :: xs)) = evalList α ctx (x :: sort xs)
theorem Lean.Data.AC.Context.evalList_sort {α : Sort u_1} (ctx : Context α) (h : ContextInformation.isComm ctx = true) (e : List Nat) :
evalList α ctx (sort e) = evalList α ctx e
theorem Lean.Data.AC.Context.evalList_removeNeutrals {α : Sort u_1} (ctx : Context α) (e : List Nat) :
evalList α ctx (removeNeutrals ctx e) = evalList α ctx e
theorem Lean.Data.AC.Context.evalList_append {α : Sort u_1} (ctx : Context α) (l r : List Nat) (h₁ : l []) (h₂ : r []) :
evalList α ctx (l.append r) = ctx.op (evalList α ctx l) (evalList α ctx r)
theorem Lean.Data.AC.Context.eval_toList {α : Sort u_1} (ctx : Context α) (e : Expr) :
evalList α ctx e.toList = eval α ctx e
theorem Lean.Data.AC.Context.eval_norm {α : Sort u_1} (ctx : Context α) (e : Expr) :
evalList α ctx (norm ctx e) = eval α ctx e
theorem Lean.Data.AC.Context.eq_of_norm {α : Sort u_1} (ctx : Context α) (a b : Expr) (h : (norm ctx a == norm ctx b) = true) :
eval α ctx a = eval α ctx b