1. | M = FindAchievableElements(maxLevel, M, CurrentM, TargetM) |
2. | if M.NonProven.length == 0 do |
3. | for each l in [0..maxLevel] do |
4. | M.TransitionSequence = zip(zip(M.AchievedWith[l], M.AchievedWhile[l]), zip(M.AchievedFrom[l], M.AchievedTo[l])) /* to get a list of quads of the form (function, condition, input, output)*/ |
5. | else error ‘no transition is found’ |
6. | return M |