1
0
Fork 0
mirror of synced 2025-09-23 12:18:44 +00:00

Update ir.md

This commit is contained in:
Thibaut Schaeffer 2019-02-01 11:44:44 +01:00 committed by GitHub
parent 00659fc60a
commit e0316c39e2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,9 +5,11 @@ ZIR is the intermediate representation ZoKrates uses to represent programs. It i
**Note that ZIR is still in development and can change without notice.**
When generating R1CS constraints, very large numbers are often used, which can make reading ZIR hard for humans.
To mitigate this, ZIR applies an isomorphism when displaying field elements: they are shown as members of the interval `[-(p-1)/2, (p-1)/2]`.
To mitigate this, ZIR applies an isomorphism when displaying field elements: they are shown as members of the interval `[- (p - 1)/2, (p - 1)/2]`. In other words, the following mapping is used:
- elements in `[0, (p - 1)/2]` map to themselves
- elements in `[(p + 1)/2, p - 1]` map to themselves minus `p`
Therefore, instead of writing p - 1 as:
Therefore, instead of writing `p - 1` as:
```
21888242871839275222246405745257275088548364400416034343698204186575808495616
```