-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Update: A draft PR is slowly piecing itself together. We have a "starter" generated by some AI that works fairly well, and we need to
edit it (which also means understanding exactly what it does and correcting its errors) and add any missing features we want. It won't become a ready PR until all of it is understood and corrected by a human. If a person who is experienced with core helps finish the draft, it'll get done much faster. We are making some changes in viewer to support this—those are super simple—but also changes to core and compile to 1) allow independence results in deduction and data 2) limit how they can be used by contributors to data and/or the deduction engine to ensure correctness.
Also, anybody else see pi base not displaying any names for anything? No space names or property names ever. Thanks @felixpernegger
I know in the super long term there's been at least a remark on Zulip about possibly overhauling to Lean. So maybe this isn't necessary/helpful.
But I've been thinking that it should not be that hard to implement a third logical value besides true or false. This can be the "provably independent" value (the "unknown" value would still exist, of course). Currently I got the compiler to recognize a third value and am working on getting deduction to work properly. I probably will try and implement it just for fun, though if there is significant optimization that's needed I might struggle to do that. I can't make promises, but it seems fun.
Is there any desire for/recommendations when playing around with this? My primary motivation is to stop the continuum hypothesis from raiding the question box, though it's also just a good feature in my opinion.
The hard part is that the engine seems to prove everything by negating it and getting a contradiction (is that right?). So what may be easiest is to have the independence deductions separate from the regular deduction engine in some way, where independence can be influenced by logical deductions but cannot be used for any further deductions. So pi-base can deduce a statement is independent but cannot deduce anything else from that fact. For simplicity (for now) it cannot even affect the explore page, only occurring if you ask for a specific trait on a specific space.
A related feature, which would be somewhat necessary, would be the ability to override independence values. For example, pi base has Luzin sets which require CH to construct. Thus pi base correctly has their cardinality as both c and aleph1. If we had a theorem "cardinality c implies cardinality aleph1 is independent", then we'd need to basically turn that theorem off for the Luzin sets, which live in ZFC+CH. This is easy if independence checking is somewhat separate from deduction: we just say "whatever deduction (including manual input) says goes; we won't even check for independence unless deduction gives us nothing".
To check independence, we have a few theorems A -> (B is independent) and we just try and prove A. If nothing pops up, we say we don't have enough information.