Library HoTT.Tests.Algebra.Rings.Ring
From HoTT Require Import Basics.Overture Algebra.Rings.Ring Algebra.Rings.CRing.
From HoTT.Algebra Require Import Groups.Group AbGroups.AbelianGroup.
From HoTT Require Import abstract_algebra.
Local Open Scope path_scope.
From HoTT.Algebra Require Import Groups.Group AbGroups.AbelianGroup.
From HoTT Require Import abstract_algebra.
Local Open Scope path_scope.
Test that opposite rings are definitionally involutive.
This may look funny, but you will see that Coq discards the rng_op during elaboration meaning that we only have R = R at the end. The reason this works is that rng_op takes in only a Ring. Afterwards, Coq is able to see that rng_op (rng_op R) should be a CRing and the coercion from Ring to CRing is reversible, therefore Coq tries to unify it with the original commutative ring. This behaviour is a bit surprising but is harmless so we just document it here.