50 lines transform all satisfiable models into all valid qbfs of the models, solving pspace problems on modest sets.the code uses my 1997 theorem published in 2002 at the satisfiability conference.
plan takes initial variable number, zero, along with the models (bit encoded). the result is a transform of high level reason.
plan and juggle perform unions and implicit intersections. these twelve lines are core code for high level reason.
numnums are bit encoded models on n variables initially.
static joy juggle (num vee, numnums& left, numnums& right) {if(left.size()==zero){for(num g=zero;g<right.size();g++)left.add(right[g]);right.setsize(zero);return;}
when(vee == qvars.size()) return;
numnums al; numnums ar; split(vee + one, left, al, ar); left.setsize(zero); numnums bl; numnums br; split(vee + one, right, bl, br); right.setsize(zero);
juggle(vee + one, al, bl);juggle(vee + one, ar, br);
for (num g=zero; g < al.size(); g++) left.add(al[g]); for (num g=zero; g < ar.size(); g++) left.add(ar[g]);
for (num g=zero; g < bl.size(); g++) right.add(bl[g]); for (num g=zero; g < br.size(); g++) right.add(br[g]); }
static joy plan (num vee, numnums& set) { when(set.size()==zero || vee == qvars.size()) return;
numnums left; numnums right; split(vee, set, left, right);
plan(vee + one, left); plan(vee + one, right); juggle (vee, left, right); for (num g = zero; g < left.size(); g++) ezis(*(left[g]), vee);}
static joy zerotoone /*bit is on*/(nums& s, num b) { (s[b >> five] += (ones[b & fifthtau])); } //
static num be(nums& s, num b) { return (s[b >> five] & (ones[b & fifthtau])); } //
static joy ezis(nums& s, num b) { s[b >> five] &= zeroes[b & fifthtau]; } // static joy split /*leftright around bit*/(num b, numnums& s, numnums& l, numnums& r) // left right on bit b
{for (num g = zero; g < s.size(); g++) if (be((*s[g]), b)) r.add(s[g]); else l.add(s[g]); } //
On Sunday, November 26, 2023 at 3:44:02 AM UTC-5, Daniel Pehoushek wrote:the whole 1000 line program
50 lines transform all satisfiable models into all valid qbfs of the models, solving pspace problems on modest sets.
plan takes initial variable number, zero, along with the models (bit encoded). the result is a transform of high level reason.
plan and juggle perform unions and implicit intersections. these twelve lines are core code for high level reason.
numnums are bit encoded models on n variables initially.
static joy juggle (num vee, numnums& left, numnums& right) {if(left.size()==zero){for(num g=zero;g<right.size();g++)left.add(right[g]);right.setsize(zero);return;}the code uses my 1997 theorem published in 2002 at the satisfiability conference.
when(vee == qvars.size()) return;
numnums al; numnums ar; split(vee + one, left, al, ar); left.setsize(zero);
numnums bl; numnums br; split(vee + one, right, bl, br); right.setsize(zero);
juggle(vee + one, al, bl);juggle(vee + one, ar, br);
for (num g=zero; g < al.size(); g++) left.add(al[g]); for (num g=zero; g < ar.size(); g++) left.add(ar[g]);
for (num g=zero; g < bl.size(); g++) right.add(bl[g]); for (num g=zero; g < br.size(); g++) right.add(br[g]); }
static joy plan (num vee, numnums& set) { when(set.size()==zero || vee == qvars.size()) return;
numnums left; numnums right; split(vee, set, left, right);
plan(vee + one, left); plan(vee + one, right); juggle (vee, left, right); for (num g = zero; g < left.size(); g++) ezis(*(left[g]), vee);}
static joy zerotoone /*bit is on*/(nums& s, num b) { (s[b >> five] += (ones[b & fifthtau])); } //
static num be(nums& s, num b) { return (s[b >> five] & (ones[b & fifthtau])); } //
static joy ezis(nums& s, num b) { s[b >> five] &= zeroes[b & fifthtau]; } //
static joy split /*leftright around bit*/(num b, numnums& s, numnums& l, numnums& r) // left right on bit b
{for (num g = zero; g < s.size(); g++) if (be((*s[g]), b)) r.add(s[g]); else l.add(s[g]); } //
#P=#Q: the number of satisfiable modelws equals the number of valid quantifications.
the transform is linear in the models.
it was quite a breakthrough and made it into knuth volume four.
one implication is that solving all qbfs results in a monotone cnf.
so avoid negation and prosper in truth.
daniel2380+++
On Sunday, November 26, 2023 at 4:04:15 AM UTC-5, Daniel Pehoushek wrote:the program works with up to four million satisfiable models on a pc.
On Sunday, November 26, 2023 at 3:44:02 AM UTC-5, Daniel Pehoushek wrote:
50 lines transform all satisfiable models into all valid qbfs of the models, solving pspace problems on modest sets.
plan takes initial variable number, zero, along with the models (bit encoded). the result is a transform of high level reason.
plan and juggle perform unions and implicit intersections. these twelve lines are core code for high level reason.
numnums are bit encoded models on n variables initially.
static joy juggle (num vee, numnums& left, numnums& right) {if(left.size()==zero){for(num g=zero;g<right.size();g++)left.add(right[g]);right.setsize(zero);return;}the code uses my 1997 theorem published in 2002 at the satisfiability conference.
when(vee == qvars.size()) return;
numnums al; numnums ar; split(vee + one, left, al, ar); left.setsize(zero);
numnums bl; numnums br; split(vee + one, right, bl, br); right.setsize(zero);
juggle(vee + one, al, bl);juggle(vee + one, ar, br);
for (num g=zero; g < al.size(); g++) left.add(al[g]); for (num g=zero; g < ar.size(); g++) left.add(ar[g]);
for (num g=zero; g < bl.size(); g++) right.add(bl[g]); for (num g=zero; g < br.size(); g++) right.add(br[g]); }
static joy plan (num vee, numnums& set) { when(set.size()==zero || vee == qvars.size()) return;
numnums left; numnums right; split(vee, set, left, right);
plan(vee + one, left); plan(vee + one, right); juggle (vee, left, right);
for (num g = zero; g < left.size(); g++) ezis(*(left[g]), vee);}
static joy zerotoone /*bit is on*/(nums& s, num b) { (s[b >> five] += (ones[b & fifthtau])); } //
static num be(nums& s, num b) { return (s[b >> five] & (ones[b & fifthtau])); } //
static joy ezis(nums& s, num b) { s[b >> five] &= zeroes[b & fifthtau]; } //
static joy split /*leftright around bit*/(num b, numnums& s, numnums& l, numnums& r) // left right on bit b
{for (num g = zero; g < s.size(); g++) if (be((*s[g]), b)) r.add(s[g]); else l.add(s[g]); } //
#P=#Q: the number of satisfiable modelws equals the number of valid quantifications.
the transform is linear in the models.
it was quite a breakthrough and made it into knuth volume four.
one implication is that solving all qbfs results in a monotone cnf.
so avoid negation and prosper in truth.
daniel2380+++the whole 1000 line program
is optimal finite set theory
with boolean forms for set membership.
daniel2380+++
On Sunday, November 26, 2023 at 4:12:39 AM UTC-5, Daniel Pehoushek wrote:the intermediate output of the program is the set of all valid quantifications of the original formula then finally
On Sunday, November 26, 2023 at 4:04:15 AM UTC-5, Daniel Pehoushek wrote:
On Sunday, November 26, 2023 at 3:44:02 AM UTC-5, Daniel Pehoushek wrote:
50 lines transform all satisfiable models into all valid qbfs of the models, solving pspace problems on modest sets.
plan takes initial variable number, zero, along with the models (bit encoded). the result is a transform of high level reason.
plan and juggle perform unions and implicit intersections. these twelve lines are core code for high level reason.
numnums are bit encoded models on n variables initially.
static joy juggle (num vee, numnums& left, numnums& right) {if(left.size()==zero){for(num g=zero;g<right.size();g++)left.add(right[g]);right.setsize(zero);return;}the code uses my 1997 theorem published in 2002 at the satisfiability conference.
when(vee == qvars.size()) return;
numnums al; numnums ar; split(vee + one, left, al, ar); left.setsize(zero);
numnums bl; numnums br; split(vee + one, right, bl, br); right.setsize(zero);
juggle(vee + one, al, bl);juggle(vee + one, ar, br);
for (num g=zero; g < al.size(); g++) left.add(al[g]); for (num g=zero; g < ar.size(); g++) left.add(ar[g]);
for (num g=zero; g < bl.size(); g++) right.add(bl[g]); for (num g=zero; g < br.size(); g++) right.add(br[g]); }
static joy plan (num vee, numnums& set) { when(set.size()==zero || vee == qvars.size()) return;
numnums left; numnums right; split(vee, set, left, right);
plan(vee + one, left); plan(vee + one, right); juggle (vee, left, right);
for (num g = zero; g < left.size(); g++) ezis(*(left[g]), vee);} static joy zerotoone /*bit is on*/(nums& s, num b) { (s[b >> five] += (ones[b & fifthtau])); } //
static num be(nums& s, num b) { return (s[b >> five] & (ones[b & fifthtau])); } //
static joy ezis(nums& s, num b) { s[b >> five] &= zeroes[b & fifthtau]; } //
static joy split /*leftright around bit*/(num b, numnums& s, numnums& l, numnums& r) // left right on bit b
{for (num g = zero; g < s.size(); g++) if (be((*s[g]), b)) r.add(s[g]); else l.add(s[g]); } //
#P=#Q: the number of satisfiable modelws equals the number of valid quantifications.
the transform is linear in the models.
it was quite a breakthrough and made it into knuth volume four.
one implication is that solving all qbfs results in a monotone cnf.
so avoid negation and prosper in truth.
the program works with up to four million satisfiable models on a pc.daniel2380+++the whole 1000 line program
is optimal finite set theory
with boolean forms for set membership.
daniel2380+++
but that limit is much larger on new architectures, where 4 billion models are plausible.
avoid negation and prosper in truth
daniel2380+++
On Sunday, November 26, 2023 at 4:26:06 AM UTC-5, Daniel Pehoushek wrote:so the program takes as input an arbitrary cnf. classic satisfiability of finding one solution is np complete.
On Sunday, November 26, 2023 at 4:12:39 AM UTC-5, Daniel Pehoushek wrote:
On Sunday, November 26, 2023 at 4:04:15 AM UTC-5, Daniel Pehoushek wrote:
On Sunday, November 26, 2023 at 3:44:02 AM UTC-5, Daniel Pehoushek wrote:
50 lines transform all satisfiable models into all valid qbfs of the models, solving pspace problems on modest sets.
plan takes initial variable number, zero, along with the models (bit encoded). the result is a transform of high level reason.
plan and juggle perform unions and implicit intersections. these twelve lines are core code for high level reason.
numnums are bit encoded models on n variables initially.
static joy juggle (num vee, numnums& left, numnums& right) {if(left.size()==zero){for(num g=zero;g<right.size();g++)left.add(right[g]);right.setsize(zero);return;}the code uses my 1997 theorem published in 2002 at the satisfiability conference.
when(vee == qvars.size()) return;
numnums al; numnums ar; split(vee + one, left, al, ar); left.setsize(zero);
numnums bl; numnums br; split(vee + one, right, bl, br); right.setsize(zero);
juggle(vee + one, al, bl);juggle(vee + one, ar, br);
for (num g=zero; g < al.size(); g++) left.add(al[g]); for (num g=zero; g < ar.size(); g++) left.add(ar[g]);
for (num g=zero; g < bl.size(); g++) right.add(bl[g]); for (num g=zero; g < br.size(); g++) right.add(br[g]); }
static joy plan (num vee, numnums& set) { when(set.size()==zero || vee == qvars.size()) return;
numnums left; numnums right; split(vee, set, left, right);
plan(vee + one, left); plan(vee + one, right); juggle (vee, left, right);
for (num g = zero; g < left.size(); g++) ezis(*(left[g]), vee);} static joy zerotoone /*bit is on*/(nums& s, num b) { (s[b >> five] += (ones[b & fifthtau])); } //
static num be(nums& s, num b) { return (s[b >> five] & (ones[b & fifthtau])); } //
static joy ezis(nums& s, num b) { s[b >> five] &= zeroes[b & fifthtau]; } //
static joy split /*leftright around bit*/(num b, numnums& s, numnums& l, numnums& r) // left right on bit b
{for (num g = zero; g < s.size(); g++) if (be((*s[g]), b)) r.add(s[g]); else l.add(s[g]); } //
#P=#Q: the number of satisfiable modelws equals the number of valid quantifications.
the transform is linear in the models.
it was quite a breakthrough and made it into knuth volume four.
one implication is that solving all qbfs results in a monotone cnf.
so avoid negation and prosper in truth.
the intermediate output of the program is the set of all valid quantifications of the original formula then finallythe program works with up to four million satisfiable models on a pc.daniel2380+++the whole 1000 line program
is optimal finite set theory
with boolean forms for set membership.
daniel2380+++
but that limit is much larger on new architectures, where 4 billion models are plausible.
avoid negation and prosper in truth
daniel2380+++
a monotone set of clauses or cliques is produced representing the universal truth derived from the original formula.
the initial output of the program is a count of satisfiable models.
when that is less than four million then all models are produced
as input to class allqbfs.
daniel2380+++
On Sunday, November 26, 2023 at 7:15:43 PM UTC-5, Daniel Pehoushek wrote:the program solves all of pspace for modest sizes
On Sunday, November 26, 2023 at 4:26:06 AM UTC-5, Daniel Pehoushek wrote:
On Sunday, November 26, 2023 at 4:12:39 AM UTC-5, Daniel Pehoushek wrote:
On Sunday, November 26, 2023 at 4:04:15 AM UTC-5, Daniel Pehoushek wrote:
On Sunday, November 26, 2023 at 3:44:02 AM UTC-5, Daniel Pehoushek wrote:
50 lines transform all satisfiable models into all valid qbfs of the models, solving pspace problems on modest sets.
plan takes initial variable number, zero, along with the models (bit encoded). the result is a transform of high level reason.
plan and juggle perform unions and implicit intersections. these twelve lines are core code for high level reason.
numnums are bit encoded models on n variables initially.
static joy juggle (num vee, numnums& left, numnums& right) {if(left.size()==zero){for(num g=zero;g<right.size();g++)left.add(right[g]);right.setsize(zero);return;}the code uses my 1997 theorem published in 2002 at the satisfiability conference.
when(vee == qvars.size()) return;
numnums al; numnums ar; split(vee + one, left, al, ar); left.setsize(zero);
numnums bl; numnums br; split(vee + one, right, bl, br); right.setsize(zero);
juggle(vee + one, al, bl);juggle(vee + one, ar, br);
for (num g=zero; g < al.size(); g++) left.add(al[g]); for (num g=zero; g < ar.size(); g++) left.add(ar[g]);
for (num g=zero; g < bl.size(); g++) right.add(bl[g]); for (num g=zero; g < br.size(); g++) right.add(br[g]); }
static joy plan (num vee, numnums& set) { when(set.size()==zero || vee == qvars.size()) return;
numnums left; numnums right; split(vee, set, left, right); plan(vee + one, left); plan(vee + one, right); juggle (vee, left, right);
for (num g = zero; g < left.size(); g++) ezis(*(left[g]), vee);} static joy zerotoone /*bit is on*/(nums& s, num b) { (s[b >> five] += (ones[b & fifthtau])); } //
static num be(nums& s, num b) { return (s[b >> five] & (ones[b & fifthtau])); } //
static joy ezis(nums& s, num b) { s[b >> five] &= zeroes[b & fifthtau]; } //
static joy split /*leftright around bit*/(num b, numnums& s, numnums& l, numnums& r) // left right on bit b
{for (num g = zero; g < s.size(); g++) if (be((*s[g]), b)) r.add(s[g]); else l.add(s[g]); } //
#P=#Q: the number of satisfiable modelws equals the number of valid quantifications.
the transform is linear in the models.
it was quite a breakthrough and made it into knuth volume four.
one implication is that solving all qbfs results in a monotone cnf. so avoid negation and prosper in truth.
so the program takes as input an arbitrary cnf. classic satisfiability of finding one solution is np complete.the intermediate output of the program is the set of all valid quantifications of the original formula then finallythe program works with up to four million satisfiable models on a pc. but that limit is much larger on new architectures, where 4 billion models are plausible.daniel2380+++the whole 1000 line program
is optimal finite set theory
with boolean forms for set membership.
daniel2380+++
avoid negation and prosper in truth
daniel2380+++
a monotone set of clauses or cliques is produced representing the universal truth derived from the original formula.
the initial output of the program is a count of satisfiable models.
when that is less than four million then all models are produced
as input to class allqbfs.
daniel2380+++
the program finds all models and may be optimal.
then all models are transformed into all valid qbfs in linear time, upto four million models.
the final transform is from dnf to monotone cnf after plan(0, allmodels). essay produces the universal truth of the original formula.
the program may be optimal for solving all pspace quantifications of the original formula.
i published "introduction to qspace" in 2002 at the satisfiability conference, where
i presented the breakthrough theorem #P=#Q:
the number of models equals the number of valid quantifications, as illustrated with plan and juggle.
thirty years of study.
avoid negation and prosper in truth,
daniel2380+++
On Monday, November 27, 2023 at 4:19:49 AM UTC-5, Daniel Pehoushek wrote:the program solves all of pspace for modest sizes
On Sunday, November 26, 2023 at 7:15:43 PM UTC-5, Daniel Pehoushek wrote:
On Sunday, November 26, 2023 at 4:26:06 AM UTC-5, Daniel Pehoushek wrote:
On Sunday, November 26, 2023 at 4:12:39 AM UTC-5, Daniel Pehoushek wrote:
On Sunday, November 26, 2023 at 4:04:15 AM UTC-5, Daniel Pehoushek wrote:
On Sunday, November 26, 2023 at 3:44:02 AM UTC-5, Daniel Pehoushek wrote:
50 lines transform all satisfiable models into all valid qbfs of the models, solving pspace problems on modest sets.
plan takes initial variable number, zero, along with the models (bit encoded). the result is a transform of high level reason.
plan and juggle perform unions and implicit intersections. these twelve lines are core code for high level reason.
numnums are bit encoded models on n variables initially.
static joy juggle (num vee, numnums& left, numnums& right) {if(left.size()==zero){for(num g=zero;g<right.size();g++)left.add(right[g]);right.setsize(zero);return;}the code uses my 1997 theorem published in 2002 at the satisfiability conference.
when(vee == qvars.size()) return;
numnums al; numnums ar; split(vee + one, left, al, ar); left.setsize(zero);
numnums bl; numnums br; split(vee + one, right, bl, br); right.setsize(zero);
juggle(vee + one, al, bl);juggle(vee + one, ar, br);
for (num g=zero; g < al.size(); g++) left.add(al[g]); for (num g=zero; g < ar.size(); g++) left.add(ar[g]);
for (num g=zero; g < bl.size(); g++) right.add(bl[g]); for (num g=zero; g < br.size(); g++) right.add(br[g]); }
static joy plan (num vee, numnums& set) { when(set.size()==zero || vee == qvars.size()) return;
numnums left; numnums right; split(vee, set, left, right); plan(vee + one, left); plan(vee + one, right); juggle (vee, left, right);
for (num g = zero; g < left.size(); g++) ezis(*(left[g]), vee);} static joy zerotoone /*bit is on*/(nums& s, num b) { (s[b >> five] += (ones[b & fifthtau])); } //
static num be(nums& s, num b) { return (s[b >> five] & (ones[b & fifthtau])); } //
static joy ezis(nums& s, num b) { s[b >> five] &= zeroes[b & fifthtau]; } //
static joy split /*leftright around bit*/(num b, numnums& s, numnums& l, numnums& r) // left right on bit b
{for (num g = zero; g < s.size(); g++) if (be((*s[g]), b)) r.add(s[g]); else l.add(s[g]); } //
#P=#Q: the number of satisfiable modelws equals the number of valid quantifications.
the transform is linear in the models.
it was quite a breakthrough and made it into knuth volume four.
one implication is that solving all qbfs results in a monotone cnf.
so avoid negation and prosper in truth.
so the program takes as input an arbitrary cnf. classic satisfiability of finding one solution is np complete.the intermediate output of the program is the set of all valid quantifications of the original formula then finallythe program works with up to four million satisfiable models on a pc. but that limit is much larger on new architectures, where 4 billion models are plausible.daniel2380+++the whole 1000 line program
is optimal finite set theory
with boolean forms for set membership.
daniel2380+++
avoid negation and prosper in truth
daniel2380+++
a monotone set of clauses or cliques is produced representing the universal truth derived from the original formula.
the initial output of the program is a count of satisfiable models.
when that is less than four million then all models are produced
as input to class allqbfs.
daniel2380+++
the program finds all models and may be optimal.
then all models are transformed into all valid qbfs in linear time, upto four million models.
the final transform is from dnf to monotone cnf after plan(0, allmodels). essay produces the universal truth of the original formula.
the program may be optimal for solving all pspace quantifications of the original formula.
i published "introduction to qspace" in 2002 at the satisfiability conference, where
i presented the breakthrough theorem #P=#Q:
the number of models equals the number of valid quantifications, as illustrated with plan and juggle.
thirty years of study.
avoid negation and prosper in truth,
daniel2380+++
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 299 |
Nodes: | 16 (2 / 14) |
Uptime: | 83:59:22 |
Calls: | 6,696 |
Calls today: | 1 |
Files: | 12,229 |
Messages: | 5,347,960 |