Documentation

Lean.Elab.BuiltinNotation

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

The anonymous constructor ⟨e, ...⟩ is equivalent to c e ... if the expected type is an inductive type with a single constructor c. If more terms are given than c has parameters, the remaining arguments are turned into a new anonymous constructor application. For example, ⟨a, b, c⟩ : α × (β × γ) is equivalent to ⟨a, ⟨b, c⟩⟩.

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.
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.
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.
Equations
  • One or more equations did not get rendered due to their size.

panic! msg formally evaluates to @Inhabited.default α if the expected type α implements Inhabited. At runtime, msg and the file position are printed to stderr unless the C function lean_set_panic_messages(false) has been executed before. If the C function lean_set_exit_on_panic(true) has been executed before, the process is then aborted.

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

A shorthand for panic! "unreachable code has been reached".

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

assert! cond panics if cond evaluates to false.

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

dbg_trace e; body evaluates to body and prints e (which can be an interpolated string literal) to stderr. It should only be used for debugging.

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

A temporary placeholder for a missing proof or value.

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

Return syntax Prod.mk elems[0] (Prod.mk elems[1] ... (Prod.mk elems[elems.size - 2] elems[elems.size - 1])))

Equations

Return some if succeeded expanding · notation occurring in the given syntax. Otherwise, return none. Examples:

  • · + 1 => fun _a_1 => _a_1 + 1
  • f · · b => fun _a_1 _a_2 => f _a_1 _a_2 b
Equations
  • One or more equations did not get rendered due to their size.

Auxiliary function for expanding the · notation. The extra state Array Syntax contains the new binder names. If stx is a ·, we create a fresh identifier, store in the extra state, and return it. Otherwise, we just return stx.

Helper method for elaborating terms such as (.+.) where a constant name is expected. This method is usually used to implement tactics that function names as arguments (e.g., simp).

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.
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.

h ▸ e is a macro built on top of Eq.subst and Eq.symm definitions. Given h : a = b and e : p a, the term h ▸ e has type p b. You can also view h ▸ e as a "type casting" operation where you change the type of e by using h. See the Chapter "Quantifiers and Equality" in the manual "Theorem Proving in Lean" for additional information.

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.