@@ -9,6 +9,7 @@ module orthogonal-factorization-systems.double-negation-sheaves where
99``` agda
1010open import foundation.contractible-types
1111open import foundation.dependent-pair-types
12+ open import foundation.double-negation
1213open import foundation.double-negation-stable-propositions
1314open import foundation.empty-types
1415open import foundation.irrefutable-propositions
@@ -101,22 +102,34 @@ module _
101102
102103### Double negation stable propositions are double negation sheaves
103104
104- This follows from the fact that a proposition ` P ` is double negation stable if
105- and only if it is local at all double negations
105+ ``` agda
106+ module _
107+ {l1 l2 : Level} {A : UU l2}
108+ (is-prop-A : is-prop A)
109+ (is-¬¬-stable-A : is-double-negation-stable (A , is-prop-A))
110+ where
106111
107- ``` text
108- (¬¬A → P) → (A → P),
112+ is-double-negation-sheaf-is-double-negation-stable-is-prop :
113+ is-double-negation-sheaf l1 A
114+ is-double-negation-sheaf-is-double-negation-stable-is-prop P =
115+ is-equiv-has-converse-is-prop
116+ ( is-prop-A)
117+ ( is-prop-function-type is-prop-A)
118+ ( λ f →
119+ is-¬¬-stable-A
120+ ( λ na → is-irrefutable-Irrefutable-Prop P (λ p → na (f p))))
109121```
110122
111- and nullification at irrefutable propositions is a restriction of this.
112-
113- > This remains to be formalized.
114-
115123### The negation of a type is a double negation sheaf
116124
117- This is a corollary of the previous result.
118-
119- > This remains to be formalized.
125+ ``` agda
126+ is-double-negation-sheaf-neg :
127+ {l1 l2 : Level} {A : UU l2} → is-double-negation-sheaf l1 (¬ A)
128+ is-double-negation-sheaf-neg =
129+ is-double-negation-sheaf-is-double-negation-stable-is-prop
130+ ( is-prop-neg)
131+ ( elim-triple-negation)
132+ ```
120133
121134## References
122135
0 commit comments