Metamath Proof Explorer


Theorem isufd

Description: The property of being a Unique Factorization Domain. (Contributed by Thierry Arnoux, 1-Jun-2024)

Ref Expression
Hypotheses isufd.a A = AbsVal R
isufd.i No typesetting found for |- I = ( PrmIdeal ` R ) with typecode |-
isufd.3 P = RPrime R
Assertion isufd Could not format assertion : No typesetting found for |- ( R e. UFD <-> ( R e. CRing /\ ( A =/= (/) /\ A. i e. I ( i i^i P ) =/= (/) ) ) ) with typecode |-

Proof

Step Hyp Ref Expression
1 isufd.a A = AbsVal R
2 isufd.i Could not format I = ( PrmIdeal ` R ) : No typesetting found for |- I = ( PrmIdeal ` R ) with typecode |-
3 isufd.3 P = RPrime R
4 fveq2 r = R AbsVal r = AbsVal R
5 4 1 eqtr4di r = R AbsVal r = A
6 5 neeq1d r = R AbsVal r A
7 fveq2 Could not format ( r = R -> ( PrmIdeal ` r ) = ( PrmIdeal ` R ) ) : No typesetting found for |- ( r = R -> ( PrmIdeal ` r ) = ( PrmIdeal ` R ) ) with typecode |-
8 7 2 eqtr4di Could not format ( r = R -> ( PrmIdeal ` r ) = I ) : No typesetting found for |- ( r = R -> ( PrmIdeal ` r ) = I ) with typecode |-
9 fveq2 r = R RPrime r = RPrime R
10 9 3 eqtr4di r = R RPrime r = P
11 10 ineq2d r = R i RPrime r = i P
12 11 neeq1d r = R i RPrime r i P
13 8 12 raleqbidv Could not format ( r = R -> ( A. i e. ( PrmIdeal ` r ) ( i i^i ( RPrime ` r ) ) =/= (/) <-> A. i e. I ( i i^i P ) =/= (/) ) ) : No typesetting found for |- ( r = R -> ( A. i e. ( PrmIdeal ` r ) ( i i^i ( RPrime ` r ) ) =/= (/) <-> A. i e. I ( i i^i P ) =/= (/) ) ) with typecode |-
14 6 13 anbi12d Could not format ( r = R -> ( ( ( AbsVal ` r ) =/= (/) /\ A. i e. ( PrmIdeal ` r ) ( i i^i ( RPrime ` r ) ) =/= (/) ) <-> ( A =/= (/) /\ A. i e. I ( i i^i P ) =/= (/) ) ) ) : No typesetting found for |- ( r = R -> ( ( ( AbsVal ` r ) =/= (/) /\ A. i e. ( PrmIdeal ` r ) ( i i^i ( RPrime ` r ) ) =/= (/) ) <-> ( A =/= (/) /\ A. i e. I ( i i^i P ) =/= (/) ) ) ) with typecode |-
15 df-ufd Could not format UFD = { r e. CRing | ( ( AbsVal ` r ) =/= (/) /\ A. i e. ( PrmIdeal ` r ) ( i i^i ( RPrime ` r ) ) =/= (/) ) } : No typesetting found for |- UFD = { r e. CRing | ( ( AbsVal ` r ) =/= (/) /\ A. i e. ( PrmIdeal ` r ) ( i i^i ( RPrime ` r ) ) =/= (/) ) } with typecode |-
16 14 15 elrab2 Could not format ( R e. UFD <-> ( R e. CRing /\ ( A =/= (/) /\ A. i e. I ( i i^i P ) =/= (/) ) ) ) : No typesetting found for |- ( R e. UFD <-> ( R e. CRing /\ ( A =/= (/) /\ A. i e. I ( i i^i P ) =/= (/) ) ) ) with typecode |-