Zulip Chat Archive
Stream: general
Topic: where did I go classical?
Kenny Lau (Mar 29 2018 at 14:37):
theorem aux3 (n : nat) (H1 : ¬n < 3) (H2 : even n) : aux (n - 2) < aux n := begin have H3 := le_of_not_gt H1, rw [aux, aux, if_neg H1, if_pos H2], let m := n - 3, have H4 : n = m + 3, { dsimp [m], rw [nat.sub_add_cancel H3] }, rw H4 at *, rw nat.add_sub_assoc, rw nat.add_sub_assoc, rw nat.add_sub_assoc, { simp, by_cases m + 1 < 3, { simp [h], apply add_lt_add_left, exact dec_trivial }, { simp [h, even_of_even_add_two _ H2], apply nat.lt_add_of_pos_right, exact dec_trivial } }, exact dec_trivial, exact dec_trivial, exact dec_trivial end
Kenny Lau (Mar 29 2018 at 14:37):
this isn't MWE. I would understand if you can't read it off the lines
Kenny Lau (Mar 29 2018 at 14:38):
(it matters in this context, not because I'm a constructivist, it has nothing to do with my constructivism, I really need this to be constructive)
Kenny Lau (Mar 29 2018 at 14:39):
I suspect it's the dec_trivial
, but natural inequality should be decidable
Kenny Lau (Mar 29 2018 at 14:41):
update: I removed every dec_trivial
and proved the inequalities using constructor
, it's still classical
Gabriel Ebner (Mar 29 2018 at 14:41):
It's le_of_not_gt
, of course.
Kenny Lau (Mar 29 2018 at 14:42):
oh, how do I fix it?
Gabriel Ebner (Mar 29 2018 at 14:43):
If you really, really don't want classical logic, then you should probably prove a specialized version of le_of_not_gt
for decidable linear orders.
Kenny Lau (Mar 29 2018 at 14:44):
is there no simple fix for naturals
Johannes Hölzl (Mar 29 2018 at 14:44):
Why do you need this as a constructive proof? There is no computable content.
You can constructively prove le_of_not_gt
for nat
using the decidability of lt
on natural numbers.
Kenny Lau (Mar 29 2018 at 14:44):
because the content is outside
Kenny Lau (Mar 29 2018 at 14:44):
this is just a part
Johannes Hölzl (Mar 29 2018 at 14:49):
But rewriting ¬n < 3
to n <= 3
is not a problem for decidability in Lean. You are fine as long as only your proofs are classical.
Kenny Lau (Mar 29 2018 at 19:23):
oh and for the sake of completeness, the final product is here https://github.com/kckennylau/Lean/blob/master/recursion.lean
Last updated: Dec 20 2023 at 11:08 UTC