File: bug_4415.v

package info (click to toggle)
coq 8.20.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 44,116 kB
  • sloc: ml: 234,160; sh: 4,301; python: 3,270; ansic: 2,644; makefile: 882; lisp: 172; javascript: 63; xml: 24; sed: 2
file content (32 lines) | stat: -rw-r--r-- 1,040 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Goal exists x, x = true.
Proof.
  evar (a : bool).
  exists a.
  (* Up to 8.5, this used to leave a constraint causing later tactics to fail *)
  (* From 8.5, it failed with an unsolvable constraint *)
  refine (unit_rec (fun s => unit_rec _ _ s = _) _ tt).
  reflexivity.
Qed.

Goal forall y : sumbool True True, exists x, x = sumbool_rect (fun _ => bool) (fun _ => true) (fun _ => true) y.
  eexists.
  let x := match goal with |- ?x = _ => constr:(x) end in
  let k := fresh in
  set (k := x);
    match goal with
      | [ |- _ = sumbool_rect ?T (fun b => _) (fun c => _) ?v ]
        => refine (_ : sumbool_rect T (fun b => _) (fun c => _) v = _)
    end;
    match goal with
      | [ |- _ = sumbool_rect ?T (fun b => _) (fun c => _) ?v ]
        => refine (sumbool_rect
                     (fun sb => sumbool_rect T _ _ sb = sumbool_rect T _ _ sb)
                     _
                     _
                     v);
          try intro; simpl sumbool_rect
      | [ |- bool ] => idtac
    end.
  reflexivity.
  reflexivity.
Qed.