var int: factorial(int: n) = let { array[0..n] of var int: factorial; constraint forall(a in 0..n)( factorial[a] == if (a == 0) then 1 else a*factorial[a-1] endif )} in factorial[n]; var int: fac = factorial(6); solve satisfy; output [show(fac),"\n"];