lean4-htt/tests/lean/1682.lean.expected.out
Kyle Miller 407a59d697
feat: pretty print props with only if domain is prop, add pp.foralls (#7812)
This PR modifies the pretty printing of pi types. Now `∀` will be
preferred over `→` for propositions if the domain is not a proposition.
For example, `∀ (n : Nat), True` pretty prints as `∀ (n : Nat), True`
rather than as `Nat → True`. There is also now an option `pp.foralls`
(default true) that when false disables using `∀` at all, for
pedagogical purposes. This PR also adjusts instance implicit binder
pretty printing — nondependent pi types won't show the instance binder
name. Closes #1834.

The linked RFC also suggests using `_` for binder names in case of
non-dependance. We're tabling that idea. Potentially it is useful for
hygienic names; this could improve how `Nat → True` pretty prints as `∀
(a : Nat), True`, with this `a` that's chosen by implication notation
elaboration. Relatedly, this PR exposes even further the issue where
binder names are reused in a confusing way. Consider: `Nat → Nat → (a :
Nat) → a = a` pretty prints as `∀ (a a a : Nat), a = a`.
2025-04-04 02:55:47 +00:00

21 lines
255 B
Text

1682.lean:1:25-2:17: error: unsolved goals
case a
p : Sort u_1
q r : Prop
⊢ ∀ (a : p), q
case b
p : Sort u_1
q r : Prop
⊢ r
1682.lean:4:25-5:26: error: unsolved goals
case a
p : Sort u_1
q r : Prop
h : p
⊢ q
case b
p : Sort u_1
q r : Prop
⊢ r