Documentation

Init.Data.AC

Instances For
    structure Lean.Data.AC.Variable {α : Sort u} (op : ααα) :
    Instances For
      structure Lean.Data.AC.Context (α : Sort u) :
      Instances For
        class Lean.Data.AC.ContextInformation (α : Sort u) :
        Sort (max 1 u)
        Instances
          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) :
            Variable ctx.op
            Equations
            • ctx.var idx = ctx.vars.getD idx { value := ctx.arbitrary, neutral := none }
            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.
              def Lean.Data.AC.eval {α : Sort u_1} (β : Sort u) [EvalInformation α β] (ctx : α) (ex : Expr) :
              β
              Equations
              Instances For
                Equations
                Instances For
                  Equations
                  Instances For
                    Equations
                    Instances For
                      def Lean.Data.AC.removeNeutrals {α : Sort u_1} [info : ContextInformation α] (ctx : α) :
                      Equations
                      Instances For
                        def Lean.Data.AC.removeNeutrals.loop {α : Sort u_1} [info : ContextInformation α] (ctx : α) :
                        Equations
                        Instances For
                          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.
                          Instances For
                            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.
                            Instances For
                              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.sort_loop_nonEmpty {ys : List Nat} (xs : List Nat) (h : xs []) :
                              sort.loop xs 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