[NotNull] public static BoolExpr MkConstraint([NotNull] this Context ctx, [NotNull] Booly p0, [NotNull] Booly p1, [NotNull] Booly p2, [NotNull] Booly p3, [NotNull] Expression <Func <bool, bool, bool, bool, bool> > expression)
 {
     if (ctx == null)
     {
         throw new ArgumentNullException(nameof(ctx));
     }
     if (p0 == null)
     {
         throw new ArgumentNullException(nameof(p0));
     }
     if (p1 == null)
     {
         throw new ArgumentNullException(nameof(p1));
     }
     if (p2 == null)
     {
         throw new ArgumentNullException(nameof(p2));
     }
     if (p3 == null)
     {
         throw new ArgumentNullException(nameof(p3));
     }
     if (expression == null)
     {
         throw new ArgumentNullException(nameof(expression));
     }
     return(MkExpressionConstraint.CreateBoolExpression(ctx, MkExpressionConstraint.ExtractParameters(ctx, expression.Parameters, p0, p1, p2, p3), expression.Body));
 }
 [NotNull] public static BoolExpr MkConstraint([NotNull] this Context ctx, [NotNull] Inty p0, [NotNull] Expression <Func <long, bool> > expression)
 {
     if (ctx == null)
     {
         throw new ArgumentNullException(nameof(ctx));
     }
     if (p0 == null)
     {
         throw new ArgumentNullException(nameof(p0));
     }
     if (expression == null)
     {
         throw new ArgumentNullException(nameof(expression));
     }
     return(MkExpressionConstraint.CreateBoolExpression(ctx, MkExpressionConstraint.ExtractParameters(ctx, expression.Parameters, p0), expression.Body));
 }