WOLFRAM NOTEBOOK

In[]:=
Groupings[{a,b,c,d},CenterDot->2]
Out[]=
{((a·b)·c)·d,a·((b·c)·d),(a·(b·c))·d,a·(b·(c·d)),(a·b)·(c·d)}
In[]:=
FindEquationalProofFirst
==Last
,ForAll[{a.,b.,c.},a.·(b.·c.)(a.·b.)·c.]
Out[]=
ProofObject
Logic: EquationalLogic
Steps: 3
Theorem: ((a·b)·c)·d(a·b)·(c·d)
In[]:=
["ProofDataset"]
Out[]=
Statement
Proof
Axiom
1
a.·(b.·c.)(a.·b.)·c.
Hypothesis
1
((a·b)·c)·d(a·b)·(c·d)
Conclusion
1
(a·b)·(c·d)(a·b)·(c·d)
9 total

Pick any Axiom and Ask for Easy-to-Prove Results...

In[]:=
[]
TwoWayRuleTokenEventGraph
[]
AxiomaticTheoryTWP
["WolframAxioms"],1,"Identity"True,"TokenLabeling"->False,GraphLayout->"SpringElectricalEmbedding"
Out[]=
In[]:=
VertexList[%]
Out[]=
{((a_·b_)·c_)·(a_·((a_·c_)·a_))c_,(((((a_·b_)·c_)·(a_·((a_·c_)·a_)))·d_)·e_)·(c_·((c_·e_)·c_))e_,((((a_·b_)·(c_·d_))·(a_·((a_·(c_·d_))·a_)))·e_)·(c_·((c_·e_)·c_))e_,(((a_·b_)·((c_·d_)·e_))·(a_·((a_·((c_·d_)·e_))·a_)))·(c_·((c_·e_)·c_))e_,((a_·(((b_·c_)·d_)·(b_·((b_·d_)·b_))))·e_)·(a_·((a_·e_)·a_))e_,((a_·b_)·(((c_·d_)·e_)·(c_·((c_·e_)·c_))))·(a_·((a_·(((c_·d_)·e_)·(c_·((c_·e_)·c_))))·a_))e_,((a_·b_)·(((c_·d_)·e_)·(c_·((c_·e_)·c_))))·(a_·((a_·e_)·a_))e_,((a_·b_)·c_)·((((d_·e_)·a_)·(d_·((d_·a_)·d_)))·((a_·c_)·a_))c_,((a_·b_)·c_)·(((d_·e_)·(a_·((a_·c_)·a_)))·(d_·((d_·(a_·((a_·c_)·a_)))·d_)))c_,((a_·b_)·c_)·(a_·(((((d_·e_)·a_)·(d_·((d_·a_)·d_)))·c_)·a_))c_,((a_·b_)·c_)·(a_·((((d_·e_)·(a_·c_))·(d_·((d_·(a_·c_))·d_)))·a_))c_,((a_·b_)·c_)·(a_·(((d_·e_)·((a_·c_)·a_))·(d_·((d_·((a_·c_)·a_))·d_))))c_,((a_·b_)·c_)·(a_·((a_·(((d_·e_)·c_)·(d_·((d_·c_)·d_))))·a_))c_,((a_·b_)·c_)·(a_·((a_·c_)·(((d_·e_)·a_)·(d_·((d_·a_)·d_)))))c_,((a_·b_)·c_)·(a_·((a_·c_)·a_))((d_·e_)·c_)·(d_·((d_·c_)·d_)),a_a_,{Event,1,1}}
In[]:=
Cases
[]
PatternsToSymbols
[%85]/.TwoWayRule->Equal,_Equal
Out[]=
{((a·b)·c)·(a·((a·c)·a))c,(((((a·b)·c)·(a·((a·c)·a)))·d)·e)·(c·((c·e)·c))e,((((a·b)·(c·d))·(a·((a·(c·d))·a)))·e)·(c·((c·e)·c))e,(((a·b)·((c·d)·e))·(a·((a·((c·d)·e))·a)))·(c·((c·e)·c))e,((a·(((b·c)·d)·(b·((b·d)·b))))·e)·(a·((a·e)·a))e,((a·b)·(((c·d)·e)·(c·((c·e)·c))))·(a·((a·(((c·d)·e)·(c·((c·e)·c))))·a))e,((a·b)·(((c·d)·e)·(c·((c·e)·c))))·(a·((a·e)·a))e,((a·b)·c)·((((d·e)·a)·(d·((d·a)·d)))·((a·c)·a))c,((a·b)·c)·(((d·e)·(a·((a·c)·a)))·(d·((d·(a·((a·c)·a)))·d)))c,((a·b)·c)·(a·(((((d·e)·a)·(d·((d·a)·d)))·c)·a))c,((a·b)·c)·(a·((((d·e)·(a·c))·(d·((d·(a·c))·d)))·a))c,((a·b)·c)·(a·(((d·e)·((a·c)·a))·(d·((d·((a·c)·a))·d))))c,((a·b)·c)·(a·((a·(((d·e)·c)·(d·((d·c)·d))))·a))c,((a·b)·c)·(a·((a·c)·(((d·e)·a)·(d·((d·a)·d)))))c,((a·b)·c)·(a·((a·c)·a))((d·e)·c)·(d·((d·c)·d))}
In[]:=
ParallelMapFindEquationalProof[#,"WolframAxioms"]["ProofLength"]&,
Out[]=
{3,4,4,4,3,5,4,4,4,4,4,4,4,4,4}
In[]:=
TakeLargestByParallelMapFindEquationalProof[#,"WolframAxioms"]&,
,#["ProofLength"]&,3
Out[]=
ProofObject
Logic: EquationalLogic
Steps: 5
Theorem: ((a·b)·(((c·d)·e)·(c·((c·e)·c))))·(a·((a·(((c·d)·e)·(c·((c·e)·c))))·a))e
,ProofObject
Logic: EquationalLogic
Steps: 4
Theorem: (((((a·b)·c)·(a·((a·c)·a)))·d)·e)·(c·((c·e)·c))e
,ProofObject
Logic: EquationalLogic
Steps: 4
Theorem: ((((a·b)·(c·d))·(a·((a·(c·d))·a)))·e)·(c·((c·e)·c))e
In[]:=
ProofObject
Logic: EquationalLogic
Steps: 5
Theorem: ((a·b)·(((c·d)·e)·(c·((c·e)·c))))·(a·((a·(((c·d)·e)·(c·((c·e)·c))))·a))e
["ProofDataset"]
Out[]=
Statement
Proof
Axiom
1
a.((b.·c.)·a.)·(b.·((b.·a.)·b.))
Hypothesis
1
SubstitutionLemma
1
((a·b)·(((c·d)·e)·(c·((c·e)·c))))·(a·((a·e)·a))e
Input
{Hypothesis,1}
Position
{2,2,1,2}
Construct
{Axiom,1}
Orientation
-1
9 total
SubstitutionLemma
2
((a·b)·e)·(a·((a·e)·a))e
Input
{SubstitutionLemma,1}
Position
{1,2}
Construct
{Axiom,1}
Orientation
-1
9 total
Conclusion
1
ee
Input
{SubstitutionLemma,2}
Position
{}
Construct
{Axiom,1}
Orientation
-1
9 total

Do we sample all the small lemmas in a typical proof?

What is the analog of making random patterns in a CA?
In[]:=
lemma2=Cases
[]
PatternsToSymbols
VertexList
[]
TwoWayRuleTokenEventGraph
[]
AxiomaticTheoryTWP
["WolframAxioms"],2,"Identity"True,"TokenLabeling"->False/.TwoWayRule->Equal,_Equal;
In[]:=
Length[lemma2]
Out[]=
5392
In[]:=
ParallelMap[FindEquationalProof[#,"WolframAxioms",TimeConstraint->10]["ProofLength"]&,lemma2];
KernelObject
:Timeout for lambda.wolfram.com//usr/local/bin/wolfram 10. Received only 0 of 20 connections.
In[]:=
Counts[%]
Out[]=
3184,4307,5569,63071,7784,8306,10102,944,116,1318,171
In[]:=
Histogram
11
,{1},{"Log","Count"}
Out[]=
In[]:=
ListPlotTransposeLeafCount/@lemma2,
11
,PlotRange->All,AxesLabel->{"leaf count","proof length"}
Out[]=
This never tries critical pair lemmas...
But substitution was how the entailment cone was made ... so it’s wasting time here....

Pure Substitution Lemmas

Pure Associativity

Lemmas in the Actual Proof

So this is in fact going through a lot of lemmas, even though it happens to make direct use of the axiom.....
C40:
This is essentially an evaluation ordering of reducing by the axioms.....
[AKA a path in the entailment cone]
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.