pub enum Reducibility {
Reducible,
Semireducible,
Irreducible,
}Expand description
Lean’s reducibility axis, declared per constant — Context::is_irreducible is the predicate
reduction::Transparency::Excluding is looking for.
Lean’s REDUCIBILITY axis, declared per constant and read by the elaborator’s δ step.
Three settings and not two, because @[reducible] is not merely “the default”: instance
resolution unfolds a reducible definition and stops at a semireducible one, so collapsing the
two changes which instances are found.
Variants§
Reducible
@[reducible] — an abbreviation, unfolded even where the elaborator is being careful.
Semireducible
The default: unfolded at ordinary transparency.
Irreducible
@[irreducible] — the elaborator never unfolds it, and secret = 5 is not rfl. The
body is KEPT: this is opacity, not an axiom, and the difference is that a later
unfold/decide can still reach the definition.
Trait Implementations§
Source§impl Clone for Reducibility
impl Clone for Reducibility
Source§fn clone(&self) -> Reducibility
fn clone(&self) -> Reducibility
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more