lean4-htt/tests/lean/run/with_unfolding_none.lean
Kim Morrison fab1897f28
feat: add with_unfolding_none tactic (#11880)
This PR adds a `with_unfolding_none` tactic that sets the transparency
mode to `.none`, in which no definitions are unfolded. This complements
the existing `with_unfolding_all` tactic and provides tactic-level
access to the `TransparencyMode.none` added in
https://github.com/leanprover/lean4/pull/11810.

🤖 Prepared with Claude Code

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 08:36:51 +00:00

25 lines
682 B
Text

/-!
# Tests for `with_unfolding_none` tactic
The `.none` transparency mode prevents unfolding of all definitions, including reducible ones.
This is stricter than `.reducible`, which unfolds `@[reducible]` definitions.
-/
-- A reducible definition: unfolded by `.reducible` but not by `.none`
@[reducible] def myId (x : Nat) : Nat := x
-- Default transparency can see through myId
example : myId 42 = 42 := by rfl
-- with_unfolding_none blocks even reducible definitions
/--
error: Tactic `rfl` failed: The left-hand side
myId 42
is not definitionally equal to the right-hand side
42
⊢ myId 42 = 42
-/
#guard_msgs in
example : myId 42 = 42 := by
with_unfolding_none rfl