WOLFRAM NOTEBOOK

Can we do ATP without accumulative lemmas?

Cut elimination

[Structure]

There are paths that correspond to proofs [ expression -> expression ]

For [ statement -> statement ] the proof is a tree

could be past entailment cone of what is being proved .... but instead, want to find a tautology in the intersection of future entailment cones

One can find these paths in entailment cones

can be untangled by cut elimination to a straight line path

Can we make a non-accumulative proof?

Finding Nontrivial ATP Proofs

In[]:=
axlist=SortBy[Union[First[Sort[{#,#/.{a->b,b->a}}]]&/@DeleteCases[Union[Sort/@canonicalizePatterns/@(TwoWayRule@@@Tuples[(Flatten[Groupings[#,SmallCircle->2]&/@Table[Tuples[{a,b},n],{n,3}]]/.{a->a_,b->b_}),2])]/.{p_Pattern:>First[p],TwoWayRule->Equal},Except[_Equal]]],StringLength[ToString[#]]&]
Out[]=
In[]:=
Clear[a]
In[]:=
ParallelEvaluate[Clear[a]]
Out[]=
{Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null}
In[]:=
ParallelMap[#->FindEquationalProof[#,ForAll[{a,b},a==ab],"ProofGraph",TimeConstraint4]&,%249]
In[]:=
ProofObjectToTokenEventGraph[FindEquationalProof[(aa)a(ab)b,ForAll[{a,b},a==ab]]]
Out[]=
xy==(yx)y
In[]:=
ParallelMap[#->FindEquationalProof[#,ForAll[{a,b},a==a(ab)],"ProofGraph",TimeConstraint4]&,%249]
Out[]=
In[]:=
ProofObjectToTokenEventGraph[FindEquationalProof[a(aa)a,ForAll[{a,b},a==a(ab)]]]
Out[]=
a(aa)a
In[]:=
DeleteCases[ParallelMap[#->FindEquationalProof[#,ForAll[{a,b},a==a(ab)],TimeConstraint4]&,Union[Sort/@(First[Sort[{#,#/.{a->b,b->a}}]]&/@DeleteCases[Equal@@@Tuples[Flatten[Groupings[#,SmallCircle->2]&/@Catenate[Table[Tuples[{a,b},n],{n,4}]]],2],True])]],_->_Failure]
In[]:=
TakeLargestBy[%267,#[[2]]["ProofLength"]&,10]
Out[]=
(aa)(ab)((aa)a)aProofObject
Logic: EquationalLogic
Steps: 8
Theorem: (aa)(ab)((aa)a)a
,a((aa)b)((aa)a)aProofObject
Logic: EquationalLogic
Steps: 8
Theorem: a((aa)b)((aa)a)a
,a((aa)a)a((aa)b)ProofObject
Logic: EquationalLogic
Steps: 7
Theorem: a((aa)a)a((aa)b)
,a((aa)a)((aa)a)aProofObject
Logic: EquationalLogic
Steps: 7
Theorem: a((aa)a)((aa)a)a
,a((aa)a)(a(ab))aProofObject
Logic: EquationalLogic
Steps: 7
Theorem: a((aa)a)(a(ab))a
,a((aa)a)(aa)(ab)ProofObject
Logic: EquationalLogic
Steps: 7
Theorem: a((aa)a)(aa)(ab)
,a(a(ba))((aa)a)aProofObject
Logic: EquationalLogic
Steps: 7
Theorem: a(a(ba))((aa)a)a
,a((aa)b)(aa)aProofObject
Logic: EquationalLogic
Steps: 7
Theorem: a((aa)b)(aa)a
,a(ab)((aa)a)aProofObject
Logic: EquationalLogic
Steps: 7
Theorem: a(ab)((aa)a)a
,a(a(bb))((aa)a)aProofObject
Logic: EquationalLogic
Steps: 7
Theorem: a(a(bb))((aa)a)a

Looking for good critical pair lemmas

Proves a complicated tautology

Remote Batch Job

Additional Cases

Confluent rewriting

Wolfram Cloud

You are using a browser not supported by the Wolfram Cloud

Supported browsers include recent versions of Chrome, Edge, Firefox and Safari.


I understand and wish to continue anyway »

You are using a browser not supported by the Wolfram Cloud. Supported browsers include recent versions of Chrome, Edge, Firefox and Safari.