@@ -42,27 +42,24 @@ open_locale big_operators
42
42
43
43
variables (K L : Type *) [field K] [field L] [algebra K L]
44
44
45
- section
46
- set_option old_structure_cmd true
47
-
48
45
/-- `S : intermediate_field K L` is a subset of `L` such that there is a field
49
46
tower `L / S / K`. -/
50
- structure intermediate_field extends subalgebra K L, subfield L
47
+ structure intermediate_field extends subalgebra K L :=
48
+ (neg_mem' : ∀ x ∈ carrier, -x ∈ carrier)
49
+ (inv_mem' : ∀ x ∈ carrier, x⁻¹ ∈ carrier)
51
50
52
51
/-- Reinterpret an `intermediate_field` as a `subalgebra`. -/
53
52
add_decl_doc intermediate_field.to_subalgebra
54
53
55
- /-- Reinterpret an `intermediate_field` as a `subfield`. -/
56
- add_decl_doc intermediate_field.to_subfield
57
-
58
- end
59
-
60
54
variables {K L} (S : intermediate_field K L)
61
55
62
56
namespace intermediate_field
63
57
58
+ /-- Reinterpret an `intermediate_field` as a `subfield`. -/
59
+ def to_subfield : subfield L := { ..S.to_subalgebra, ..S }
60
+
64
61
instance : set_like (intermediate_field K L) L :=
65
- ⟨intermediate_field.carrier, λ p q h , by cases p; cases q; congr' ⟩
62
+ ⟨λ S, S.to_subalgebra.carrier , by { rintros ⟨⟨⟩⟩ ⟨⟨⟩⟩ ⟨h⟩, congr, } ⟩
66
63
67
64
@[simp]
68
65
lemma mem_carrier {s : intermediate_field K L} {x : L} : x ∈ s.carrier ↔ x ∈ s := iff.rfl
@@ -77,7 +74,7 @@ set_like.ext h
77
74
78
75
@[simp] lemma mem_mk (s : set L) (hK : ∀ x, algebra_map K L x ∈ s)
79
76
(ho hm hz ha hn hi) (x : L) :
80
- x ∈ intermediate_field.mk s ho hm hz ha hK hn hi ↔ x ∈ s := iff.rfl
77
+ x ∈ intermediate_field.mk (subalgebra.mk s ho hm hz ha hK) hn hi ↔ x ∈ s := iff.rfl
81
78
82
79
@[simp] lemma mem_to_subalgebra (s : intermediate_field K L) (x : L) :
83
80
x ∈ s.to_subalgebra ↔ x ∈ s := iff.rfl
0 commit comments