Commit 010154e2 authored by Ralf Jung's avatar Ralf Jung

fix fractional IntoAnd instances

parent 039f9fd5
......@@ -128,14 +128,24 @@ Section fractional.
FromSep Q P P.
Proof. rewrite /FromSep=>-[-> <-] [-> _]. by rewrite Qp_div_2. Qed.
Global Instance into_and_fractional P P1 P2 Φ q1 q2 :
Global Instance into_and_fractional b P P1 P2 Φ q1 q2 :
AsFractional P Φ (q1 + q2) AsFractional P1 Φ q1 AsFractional P2 Φ q2
IntoAnd false P P1 P2.
Proof. by rewrite /IntoAnd=>-[-> ->] [-> _] [-> _]. Qed.
Global Instance into_and_fractional_half P Q Φ q :
IntoAnd b P P1 P2.
Proof.
(* TODO: We need a better way to handle this boolean here.
Ideally, it'd not even be possible to make the mistake that
was originally made here, which is to give this instance for
"false" only, thus breaking some intro patterns. *)
intros H1 H2 H3. apply mk_into_and_sep. revert H1 H2 H3.
by rewrite /IntoAnd=>-[-> ->] [-> _] [-> _].
Qed.
Global Instance into_and_fractional_half b P Q Φ q :
AsFractional P Φ q AsFractional Q Φ (q/2)
IntoAnd false P Q Q | 100.
Proof. by rewrite /IntoAnd -{1}(Qp_div_2 q)=>-[->->][-> _]. Qed.
IntoAnd b P Q Q | 100.
Proof.
intros H1 H2. apply mk_into_and_sep. revert H1 H2.
by rewrite /IntoAnd -{1}(Qp_div_2 q)=>-[->->][-> _].
Qed.
(* The instance [frame_fractional] can be tried at all the nodes of
the proof search. The proof search then fails almost always on
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment