findProof//ClearAllfindProof[teg_Graph,axioms_List,hyp_,n_:1]:=Module[{events,eventHyps,hitHyps,m=Replace[n,All->Infinity]},If[m<=0,Return[{}]];If[MemberQ[axioms,hyp],Return[{{}}]];If[VertexCount[teg,hyp]==0,Return[Missing["Hypothesis"]]];If[VertexCount[teg,Alternatives@@axioms]==0,Return[Missing["Axioms"]]];events=VertexInComponent[teg,hyp,{1}];eventHyps=AssociationMap[VertexInComponent[teg,#,{1}]&,events];FoldWhile[With[{proofs=#1,event=#2[[1]],newHyps=#2[[2]]},With[{subProofs=Enclose[FoldPairList[{k,newHyp}|->With[{hypProofs=ConfirmBy[findProof[VertexDelete[teg,events],axioms,newHyp,k],Length[#]>0&]},{hypProofs,Ceiling[Max[k,0]/Length[hypProofs]]}],m-Length[proofs],Union@newHyps],{{}}&]},Join[proofs,ResourceFunction["MultisetUnion"]@@@(Append[{With[{out=Thread[newHypsevent,List,1]},Splice@PadRight[out,2,out]],eventhyp}]/@Tuples[subProofs/._Missing->{}])]]]&,{},Normal@KeySortBy[Last]@eventHyps,Length/*LessThan[m]]]