Fud searchers
Code commentary on the implementation of Tractable and Practicable Inducers/Python Implementation/Fud searchers
Sections
Excluded-self maximum-roll-by-derived-dimension highest-layer layerer
Excluded-self maximum-roll-by-derived-dimension highest-layer layerer
The highest-layer excluded-self maximum-roll-by-derived-dimension layerer $I_{P,U,\mathrm{L,mm,xs,d}} \in \mathrm{computers}$ is defined such that the application is (Text) \[ \begin{eqnarray} I_{P,U,\mathrm{L,mm,xs,d}}^{ * }((V,A,A_R,f)) = \mathrm{layer}(V,U,\emptyset,\emptyset,A,A_R,f,1) \end{eqnarray} \] and \[ \begin{eqnarray} &&\mathrm{layer}(V,U,F,M,X,X_R,f,l) = \\ &&\hspace{1em}\mathrm{if}((l \leq \mathrm{lmax}) \wedge (H \neq \emptyset) \wedge (M \neq \emptyset \implies \mathrm{maxr}(M’)>\mathrm{maxr}(M)),\\ &&\hspace{4em}\mathrm{layer}(V,U’,F \cup H,M’,X’,X’_R,f,l+1),\\ &&\hspace{4em}(U,F,M)) :\\ &&\hspace{2em}L = \{(b,(T,(w, \mathrm{ran}(I)))) : \\ &&\hspace{4em}((\cdot,I),b) \in \mathrm{order}(D_{\mathrm{L}},\{(v,I) : \\ &&\hspace{6em}Q \in I_{P,U,\mathrm{B}}^{ * }((V,F,X,X_R)),\\ &&\hspace{6em}P \in I_{P,U,\mathrm{K},\mathrm{mm}}^{ * }(Q),~N \in I_{P,U,\mathrm{R,mr}}^{ * }(P),\\ &&\hspace{6em}(v,I) \in N,~|\mathrm{ran}(I)|<|I|\}),\\ &&\hspace{4em}w=(f,l,b),~T = (\{S \cup \{(w,k)\} : (S,k) \in I\},\{w\})\},\\ &&\hspace{2em}L’ = \{(i,(T,(w,W))) : (i,(T,(w,W))) \in L, \\ &&\hspace{4em}\forall (i’,(T’,(w’,W’))) \in L~(i>i’ \implies T^{\mathrm{P}} \neq T^{‘\mathrm{P}})\},\\ &&\hspace{2em}H = \mathrm{dom}(\mathrm{set}(L’)),~U’ = U \cup \mathrm{ran}(\mathrm{set}(L’)),\\ &&\hspace{2em}X’ = I_{\mathrm{ * X}}^{ * }((H,X)),~X’_R = I_{\mathrm{ * X}}^{ * }((H,X_R)),\\ &&\hspace{2em}M’ = I_{P,U’,\mathrm{D,d}}^{ * }((V,F \cup H,X’,X’_R)) \end{eqnarray} \]
The layerer is defined in module AlignmentPracticable
,
parametersSystemsLayererMaxRollByMExcludedSelfHighest ::
Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer ->
System -> Set.Set Variable -> Histogram -> Histogram -> Integer ->
Maybe (System, Fud, Map.Map (Set.Set Variable) Double)
as
def parametersSystemsLayererMaxRollByMExcludedSelfHighest(wmax,lmax,xmax,omax,bmax,mmax,umax,pmax,uu,vv,aa,aarr,f):
...
def buildfftup(uu,vv,ff,xx,xxrr):
return parametersSystemsBuilderTupleNoSumlayerMultiEffective(xmax,omax,bmax,mmax,uu,vv,ff,xx,xxrr)
def parter(uu,kk,bb,bbrr,y1):
return parametersSystemsPartitionerMaxRollByM(mmax,umax,pmax,uu,kk,bb,bbrr,y1)
def roller(qq):
return parametersRoller(1,qq)
def buildffdervar(uu,vv,ff,xx,xxrr):
return sdict([(kk,a) for ((kk,_,_),a) in parametersSystemsBuilderDerivedVarsHighestNoSumlayer(wmax,omax,uu,vv,ff,xx,xxrr).items()])
def layer(vv,uu,ff,mm,xx,xxrr,f,l):
jj = []
for ((kk,bb,bbrr),y1) in buildfftup(uu,vv,ff,xx,xxrr):
for pp in parter(uu,kk,bb,bbrr,y1):
for nn in roller(sgl(pp)):
for ii in nn:
if rancd(ii) < domcd(ii):
jj.append(ii)
ll = []
for (b,ii) in enumerate(jj):
w = VarPair((VarPair((VarInt(f),VarInt(l))),VarInt(b+1)))
ww = sset([ValInt(u) for (_,u) in ii])
tt = trans(unit([sunion(ss,ssgl(w,ValInt(u))) for (ss,u) in ii]),sgl(w))
ll.append((tt,(w,ww)))
ll1 = []
for (tt,(w,ww)) in ll:
if all([len(ww) != len(ww1) or und(tt) != und(tt1) or ttpp(tt) != ttpp(tt1) for (tt1,(w1,ww1)) in ll if w > w1]):
ll1.append((tt,(w,ww)))
hh = qqff(sset([tt for (tt,_) in ll1]))
uu1 = uunion(uu,lluu([(w,ww) for (_,(w,ww)) in ll1]))
xx1 = apply(vars(xx),vars(xx)|fvars(hh),fhis(hh),xx)
xxrr1 = apply(vars(xx),vars(xx)|fvars(hh),fhis(hh),xxrr)
gg = funion(ff,hh)
mm1 = buildffdervar(uu1,vv,gg,xx1,xxrr1)
if l <= lmax and len(hh) > 0 and (len(mm) == 0 or maxr(mm1) > maxr(mm)):
return layer(vv,uu1,gg,mm1,xx1,xxrr1,f,l+1)
return (uu,ff,mm)
if wmax < 0 or lmax < 0 or xmax < 0 or omax < 0 or bmax < 0 or mmax < 1 or umax < 0 or pmax < 0:
return None
if not (vars(aa).issubset(uvars(uu)) and vars(aa) == vars(aarr) and vv.issubset(vars(aa))):
return None
return layer(vv,uu,fudEmpty(),sdict(),aa,aarr,f,1)
For example,
def layerermmxs(aa,aarr,lmax,xmax,omax,bmax,mmax,umax,pmax):
return parametersSystemsLayererMaxRollByMExcludedSelfHighest(xmax,lmax,xmax,omax,bmax,mmax,umax,pmax,sys(aa),vars(aa),aa,aarr,1)[1]
aa = resize(90,regpivot(3,3))
layerermmxs(aa,ind(aa),3,3**3,2,2,2,3**2,1)
# {({({(1,1),(3,1),(<<1,1>,1>,0)},1%1),({(1,1),(3,2),(<<1,1>,1>,1)},1%1),({(1,1),(3,3),(<<1,1>,1>,1)},1%1),({(1,2),(3,1),(<<1,1>,1>,1)},1%1),({(1,2),(3,2),(<<1,1>,1>,1)},1%1),({(1,2),(3,3),(<<1,1>,1>,1)},1%1),({(1,3),(3,1),(<<1,1>,1>,1)},1%1),({(1,3),(3,2),(<<1,1>,1>,1)},1%1),({(1,3),(3,3),(<<1,1>,1>,1)},1%1)},{<<1,1>,1>}),({({(2,1),(<<1,1>,2>,0)},1%1),({(2,2),(<<1,1>,2>,1)},1%1),({(2,3),(<<1,1>,2>,1)},1%1)},{<<1,1>,2>})}
layerermmxs(aa,ind(aa),3,3**3,2,2,2,3**2,2)
# {({({(1,1),(2,1),(<<1,1>,1>,0)},1%1),({(1,1),(2,2),(<<1,1>,1>,1)},1%1),({(1,1),(2,3),(<<1,1>,1>,1)},1%1),({(1,2),(2,1),(<<1,1>,1>,1)},1%1),({(1,2),(2,2),(<<1,1>,1>,1)},1%1),({(1,2),(2,3),(<<1,1>,1>,1)},1%1),({(1,3),(2,1),(<<1,1>,1>,1)},1%1),({(1,3),(2,2),(<<1,1>,1>,1)},1%1),({(1,3),(2,3),(<<1,1>,1>,1)},1%1)},{<<1,1>,1>}),({({(1,1),(3,1),(<<1,1>,3>,0)},1%1),({(1,1),(3,2),(<<1,1>,3>,1)},1%1),({(1,1),(3,3),(<<1,1>,3>,1)},1%1),({(1,2),(3,1),(<<1,1>,3>,1)},1%1),({(1,2),(3,2),(<<1,1>,3>,1)},1%1),({(1,2),(3,3),(<<1,1>,3>,1)},1%1),({(1,3),(3,1),(<<1,1>,3>,1)},1%1),({(1,3),(3,2),(<<1,1>,3>,1)},1%1),({(1,3),(3,3),(<<1,1>,3>,1)},1%1)},{<<1,1>,3>}),({({(2,1),(<<1,1>,4>,0)},1%1),({(2,2),(<<1,1>,4>,1)},1%1),({(2,3),(<<1,1>,4>,1)},1%1)},{<<1,1>,4>}),({({(3,1),(<<1,1>,2>,0)},1%1),({(3,2),(<<1,1>,2>,1)},1%1),({(3,3),(<<1,1>,2>,1)},1%1)},{<<1,1>,2>})}
layerermmxs(aa,ind(aa),5,3**3,3,3,3,3**2,1)
# {({({(1,1),(3,1),(<<1,1>,4>,0)},1%1),({(1,1),(3,2),(<<1,1>,4>,1)},1%1),({(1,1),(3,3),(<<1,1>,4>,1)},1%1),({(1,2),(3,1),(<<1,1>,4>,1)},1%1),({(1,2),(3,2),(<<1,1>,4>,1)},1%1),({(1,2),(3,3),(<<1,1>,4>,1)},1%1),({(1,3),(3,1),(<<1,1>,4>,1)},1%1),({(1,3),(3,2),(<<1,1>,4>,1)},1%1),({(1,3),(3,3),(<<1,1>,4>,1)},1%1)},{<<1,1>,4>}),({({(1,1),(<<1,1>,1>,0)},1%1),({(1,2),(<<1,1>,1>,1)},1%1),({(1,3),(<<1,1>,1>,1)},1%1)},{<<1,1>,1>}),({({(2,1),(<<1,1>,2>,0)},1%1),({(2,2),(<<1,1>,2>,1)},1%1),({(2,3),(<<1,1>,2>,1)},1%1)},{<<1,1>,2>}),({({(3,1),(<<1,1>,3>,0)},1%1),({(3,2),(<<1,1>,3>,1)},1%1),({(3,3),(<<1,1>,3>,1)},1%1)},{<<1,1>,3>})}
layerermmxs(aa,ind(aa),5,3**3,3,3,3,3**2,2)
# {({({(1,1),(2,1),(<<1,1>,4>,0)},1%1),({(1,1),(2,2),(<<1,1>,4>,1)},1%1),({(1,1),(2,3),(<<1,1>,4>,1)},1%1),({(1,2),(2,1),(<<1,1>,4>,1)},1%1),({(1,2),(2,2),(<<1,1>,4>,1)},1%1),({(1,2),(2,3),(<<1,1>,4>,1)},1%1),({(1,3),(2,1),(<<1,1>,4>,1)},1%1),({(1,3),(2,2),(<<1,1>,4>,1)},1%1),({(1,3),(2,3),(<<1,1>,4>,1)},1%1)},{<<1,1>,4>}),({({(1,1),(3,1),(<<1,1>,6>,0)},1%1),({(1,1),(3,2),(<<1,1>,6>,1)},1%1),({(1,1),(3,3),(<<1,1>,6>,1)},1%1),({(1,2),(3,1),(<<1,1>,6>,1)},1%1),({(1,2),(3,2),(<<1,1>,6>,1)},1%1),({(1,2),(3,3),(<<1,1>,6>,1)},1%1),({(1,3),(3,1),(<<1,1>,6>,1)},1%1),({(1,3),(3,2),(<<1,1>,6>,1)},1%1),({(1,3),(3,3),(<<1,1>,6>,1)},1%1)},{<<1,1>,6>}),({({(1,1),(<<1,1>,1>,0)},1%1),({(1,2),(<<1,1>,1>,1)},1%1),({(1,3),(<<1,1>,1>,1)},1%1)},{<<1,1>,1>}),({({(2,1),(<<1,1>,2>,0)},1%1),({(2,2),(<<1,1>,2>,1)},1%1),({(2,3),(<<1,1>,2>,1)},1%1)},{<<1,1>,2>}),({({(3,1),(<<1,1>,3>,0)},1%1),({(3,2),(<<1,1>,3>,1)},1%1),({(3,3),(<<1,1>,3>,1)},1%1)},{<<1,1>,3>})}