Zulip Chat Archive
Stream: general
Topic: decidability implies LEM
Huỳnh Trần Khanh (Jul 28 2021 at 13:14):
how does decidability imply LEM? this is something that I struggle to understand
Yakov Pechersky (Jul 28 2021 at 13:16):
Decidable means that given some true-false statement, there is a defined, executable algorithm to determine whether it is true or false. No in between. Decidability by definition means that the algorithm terminates, so you will get exactly one of either true or false. That's my understanding
Eric Wieser (Jul 28 2021 at 13:18):
Decidability of all propositions implies LEM
Eric Wieser (Jul 28 2021 at 13:18):
Obviously the fact that natural numbers are decidably equal does not imply LEM generally
Yakov Pechersky (Jul 28 2021 at 13:22):
Yes, I meant LEM for the class of propositions for which one has decidability
Eric Wieser (Jul 28 2021 at 13:25):
Sure, I was just making sure Huỳnh Trần Khanh was aware of the distinction
Mario Carneiro (Jul 28 2021 at 13:32):
syntactically, it's a triviality: psum p (~p)
implies p \/ ~p
by case split
Eric Wieser (Jul 28 2021 at 13:32):
What's the relevance of psum?
Mario Carneiro (Jul 28 2021 at 13:32):
that's what decidable p
is
Eric Wieser (Jul 28 2021 at 13:33):
src#decidable says otherwise
Mario Carneiro (Jul 28 2021 at 13:33):
I would write sum
but that doesn't typecheck in lean for silly reasons
Mario Carneiro (Jul 28 2021 at 13:33):
They are isomorphic types
Eric Wieser (Jul 28 2021 at 13:33):
If we're handwaving decidable
as psum
we may as well handwave it as or
Mario Carneiro (Jul 28 2021 at 13:33):
No, because psum
is a type and or
is a prop
Mario Carneiro (Jul 28 2021 at 13:34):
decidable p
is not isomorphic to p \/ ~p
Mac (Jul 29 2021 at 02:14):
Mario Carneiro said:
I would write
sum
but that doesn't typecheck in lean for silly reasons
Isn't one key difference between decidable' (p : Prop) := psum p (~p)
and the real decidable p
that psum
is a normal inductive
and decidable
is a class inductive
?
Kyle Miller (Jul 29 2021 at 02:30):
@Mac This should be functionally equivalent:
def decidable' (p : Prop) := psum p ¬p
attribute [class] decidable'
Last updated: Dec 20 2023 at 11:08 UTC