[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-06 UTC."],[[["\u003cp\u003eThe \u003ccode\u003ecp_model_checker\u003c/code\u003e provides functionalities to validate and check the feasibility of CP models.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eSolutionIsFeasible\u003c/code\u003e checks if a given solution is feasible for a given CP model.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eValidateCpModel\u003c/code\u003e validates the structure of a CP model before or after presolve.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eValidateInputCpModel\u003c/code\u003e validates a CP model against given SatParameters.\u003c/p\u003e\n"]]],["The provided C++ documentation details three functions for validating and checking CP (Constraint Programming) models. `ValidateCpModel` checks a `CpModelProto` for validity, optionally after presolving, returning a string describing any errors. `ValidateInputCpModel` validates a `CpModelProto` against given `SatParameters`, also returning error information. `SolutionIsFeasible` verifies if a solution (`variable_values`) is feasible for a given `CpModelProto`, considering potential mapping and postsolve data, returning a boolean.\n"],null,["# cp_model_checker\n\nC++ Reference: cp_model_checker\n===============================\n\n\nNote: This documentation is automatically generated.\n\n| Function | Type | Arguments | Comments |\n|-----------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|----------|\n| [`SolutionIsFeasible`](https://github.com/google/or-tools/blob/v9.4/ortools/sat/cp_model_checker.h#L57) | Return type: `bool ` Arguments: `const CpModelProto& model, const std::vector\u003cint64_t\u003e& variable_values, const CpModelProto* mapping_proto = nullptr, const std::vector\u003cint\u003e* postsolve_mapping = nullptr` \u003cbr /\u003e |\n| [`ValidateCpModel`](https://github.com/google/or-tools/blob/v9.4/ortools/sat/cp_model_checker.h#L39) | Return type: `std::string ` Arguments: `const CpModelProto& model, bool after_presolve = false` \u003cbr /\u003e |\n| [`ValidateInputCpModel`](https://github.com/google/or-tools/blob/v9.4/ortools/sat/cp_model_checker.h#L48) | Return type: `std::string ` Arguments: `const SatParameters& params, const CpModelProto& model` \u003cbr /\u003e |"]]