Eh, it turns out the result I needed was a bit stronger than the simple case I asked about ; I was still able to adapt it, so here is what I turned up with:

```
Let only_positive_root: forall a: RR, (a == -1) || (a == 1 / 2%:R) -> (0 < a) -> a == 1 / 2%:R.
Proof.
move=> a /orP[] /eqP -> //. (* this one line works for a: rat *)
by rewrite Num.Theory.ltr0N1.
Qed.
```

where `Definition RR := { realclosure rat }.`

, coming from MC-real-closed.

@Pierre Roux Thanks!

Julien Puydt has marked this topic as resolved.

Indeed, if `a`

is not of a "concrete" type like `rat`

, `0 < -1`

cannot be simplified to `false`

. Note that we often `Import Num.Theory`

to avoid typing it again and again.

Last updated: Feb 08 2023 at 07:02 UTC