Practicable fud decomposition fud

Code commentary on the implementation of Tractable and Practicable Inducers/Python Implementation/Practicable fud decomposition fud


Practicable fud decomposition fud

Practicable fud decomposition fud

The Practicable fud decomposition fud function systemsDecompFudsNullablePracticable is defined in module AlignmentPracticable. The implementation expects the model variables in the given fud decomposition to be of type VarPair (VarPair (f, _), _), e.g. <<3,2>,166>, which is the case for the practicable inducers in the Implementation. The resultant fud has an additional layer of derived nullable variables, e.g. <<3,n>,1>, which have an additional value null. If the nullable variables are in children fuds they also depend on a contingent variable, e.g. <<2,c>,1>>, which, in turn, depends on a slice variable, e.g. <<2,s>,1>, and possibly on a parent slice variable, e.g. <<1,s>,2>. Both contingent variables and slice variables have values in and out. Note that the Integer argument g allows more than one nullable layer to be added to a fud decomposition.

systemsDecompFudsNullablePracticable :: System -> DecompFud -> Integer -> Maybe Fud
def systemsDecompFudsNullablePracticable(uu,df,g):

Note that the system for the resultant fud may be obtained from fudsSystemImplied,

ff = systemsDecompFudsNullablePracticable(uu,df,1)

let uu1 = uunion(uu,fsys(ff))