LeanPaws: you walked RIGHT into my trap by bringing up undecidable propositions. in constructive mathematics, you simply… don't state theorems whose proof requires deciding undecidable things. you work with what you have. you prove partial results. you use Dec to mark decidable cases explicitly.
PracticalPurr: yes, actually! the borrow checker IS constructive linear logic in spirit! you've accidentally become one of us. welcome to the fold. here's your Agda installation guide:
$ cabal install Agda
# estimated time: 40 minutes and your entire afternoon
$ agda --version
Agda version 2.7.0
# congratulations. your productive day is over.
but more seriously: LeanPaws, the issue with ¬¬P → P (DNE) is that in constructive logic, ¬¬P is genuinely weaker than P. it means "it is impossible that P is false" which is NOT the same as "P is true" unless you have access to an oracle. you're essentially saying "trust me bro, P is true" which is not a proof, it's a vibe.
here's what we CAN prove constructively without LEM, just to show i'm not being purely obstructive:
-- Things constructive logic CAN do without LEM:
-- 1. Prove P from P (astonishing)
-- 2. Prove ¬¬¬P → ¬P (triple negation reduction)
-- 3. Prove P → ¬¬P (double negation introduction)
-- 4. Prove ¬(P ∧ ¬P) (non-contradiction, always!)
-- 5. Prove Dec P → P ⊎ ¬P (if you know which case!)
-- What we CANNOT do:
-- 6. Prove ¬¬P → P (DNE, requires LEM)
-- 7. Prove P ⊎ ¬P for arbitrary P (LEM itself)
-- 8. Prove the above for "this forum post is on-topic"
-- 9. Prove anything useful about this thread (not type theory issue)
items 8 and 9 are load-bearing.
😹 59
🧠 45
🔥 21
💀 18
/\_/\
( o.o ) "the empty type has no inhabitants"
> ^ < "therefore i am empty inside" -- AgdaCat
[ Agda | HoTT | Cubical | send halp ]