diff --git a/mkdocs/docs/circom-language/circom-insight/simplification.md b/mkdocs/docs/circom-language/circom-insight/simplification.md index 3a506cc5f..244025ccb 100644 --- a/mkdocs/docs/circom-language/circom-insight/simplification.md +++ b/mkdocs/docs/circom-language/circom-insight/simplification.md @@ -1,6 +1,6 @@ # Constraint simplification -Constraint simplification is a key part of the `circom` compiler. Full simplification is activated by default, and its associated flag is `--O2` (see the [compilation options](../../compilation-options.md)). Simplification is not applied when the flag `--O0` is activated, and a weaker (and faster) form of simplification is applied when using the flag `--O1`. +Constraint simplification is a key part of the `circom` compiler. Full simplification is activated by default, and its associated flag is `--O2` (see the [compilation options](../../getting-started/compilation-options.md)). Simplification is not applied when the flag `--O0` is activated, and a weaker (and faster) form of simplification is applied when using the flag `--O1`. Let us explain the performed simplification in detail. @@ -28,7 +28,7 @@ Once we have explained why removing any private signal (including the private in Only one of these flags/options can be enabled in the compilation. -In case we want to see the simplification applied we can use the flag [```--simplification_substitution```](../../compilation-options.md) to obtain a json file whose format is described [here](../formats/simplification-json.md). +In case we want to see the simplification applied we can use the flag [```--simplification_substitution```](../../getting-started/compilation-options.md) to obtain a json file whose format is described [here](../formats/simplification-json.md). Note that, although the full simplification applied `--O2` can significantly reduce the number of constraints and signals, which has a positive impact in the time and space needed to compute the proof, this is the most time and space consuming phase of the compilation process. Hence, with large circuits, say with millions of constraints, compilation can take a long time (even minutes or hours) and can run in out-of-memory exceptions. In such cases, it is recommended to only use the `--O2` flag in the final steps of the project development.