<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺ v ✰ Thanks for opening an issue! ✰ v Before smashing the submit button please review the template. v Please also ensure that this is not a duplicate issue :) ☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --> ## Summary of Bug <!-- Concisely describe the issue --> `PartialOrd` for `Variable` violates `transitivity` and `duality` properties. This [code](https://github.com/arkworks-rs/snark/blob/master/relations/src/r1cs/mod.rs#L122-L142) prints both `0<1` and `1<0`. See [playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=6d10e381a6ef3d4114b9ec5319874393) for example: ``` one is Some(Less) than zero zero is Some(Less) than one ``` ## Version v0.3.0 8bb375e51be184d495c82969bd1d9a3f8fe7d27a <!-- git commit hash or tagged version --> ## Steps to Reproduce https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=51b860bb4a8854d6636e740e8be1c9ce <!-- Also please note what feature flags the library was compiled with? --> <!-- If this is a build issue, also indicate your OS and compiler versions (clang --version) -->