Ltac2 Typeexn ]java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
true;
Ltac2 | >. (.of_constr
| true =
| =>Control java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 end ( ) x ) ( ),True
Ltac2 ':?t|-
|ue java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
| false :t ' ?| _ ] => end.
Goal h@ Proofjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
Fail > h def2 let:{ := } in let f c := match!reverse
| true => Message.print_-_] h @java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
| false! goal end
in (** This fails because the matching is not allowed to backtrack once
it commits to a branch*)
lazy_match
lazy_match! Control :context ], :=context] h3 [ ] - >)
(** This one works by taking the second match context, i.e. ?a := nat *) [ bool- > ) let{ := } java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 let f c := match. c2.add+0
| true => b.(contents) := (.instantiate )
! end
in match -) context Abort.
Goalforall (i j : unit) v2 Proof
Fail match (attern ') 'java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
| [:?,' : ?t |- _ ] => () end. intros i j x y b. match! goalwith
| [ h : ?t, h' : ?t |- _ ] =>
check_id h @x;
check_id h' @y end. match! reverse goalwith
| [ h : ?t, h' : ?t |- _ ] =>
check_id h @j;
check_id h' @i end.
pose (def1 := 0 + 0). pose (def2 := true). match! goalwith
| [ h := _ |- _ ] => check_id h @def2 end. match! reverse goalwith
| [ h := _ |- _ ] => check_id h @def1 end. match! goalwith
| [ h := _ : nat |- _ ] => check_id h @def1 end. match! goalwith
| [ h : nat |- _ ] => check_id h @def1 end. match! reverse goalwith
| [ h : nat |- _ ] => check_id h @x end. match! goalwith
| [ h := ?v |- _ ] => check_constr v constr:(true) end. match! goalwith
| [ h := context c [ 0 ] |- _ ] => check_constr (Pattern.instantiate c constr:(3)) constr:(3 + 0) end. match! goalwith
h1 [ unit ] , h2= [ h3 [bool -_] >) end. match! goalwith
| [ h1 : unit , h2 := context [ 0 ] , h3 : context [ bool| [ -2=)) endend)
lazy_matchfun java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
| [ h1 : context c1 [ ?t1| None>)
check_constr t1 'bool| = Control. e
check_constr ';
check_constr t2 'bool >.zero
check_constr (Pattern.instantiate
check_constr (Pattern.instantiate c2 '(Nat.add 1)) '(1 + 0);
stantiate) end. match! goalwith
| [ Ltac2 =
check_constr v2 '0;
check_constr t2 'bool;
check_constr (Pattern.instantiate c2 '(Nat java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
check_constr (PatternEnd. end. Abort
(* Check #79 *)
2=.
Control.plus
(fun
=!
| [ |- 2 = 3 ] => Control, >)
[- _] = Control ( (Some "shouldnot be ")java.lang.StringIndexOutOfBoundsException: Index 102 out of bounds for length 102 end|,_>)
(fun e
=> match e with
c
|_ One=)
| None =>end
java.lang.StringIndexOutOfBoundsException: Range [17, 13) out of bounds for length 34
| e => Control.zero_ One None> ( end). Abort.
Fail Ltac2
Ltac2Succeed test x :=
Module StupidTuple x with
Ltac2foo x := match x with
| ((a,b),c) => b end .
Module DeepType.
Ltac2 Type rec mylist := [ Nil | One (unit option) | Cons| _,Cons_> (java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
Fail x with match x with
| Nil, _ => ()
| _,Nil endjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
| _, One None => () end
Fail match
| Nil, _ => ()
| , =>)
| One Ltac2 exn ].
| _, One None
Ltac2 : endjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
Succeedlet ={contents :0}in match x with
, _ >(
check_eq_intbang r) 1.
| One
| _,One => ()
| _, _ => () end.
Succeed Ltac2 test x := match x with
|Nil= (java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
| heck_eq_intbang .
| One : ; bint
| _, One _ =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
| Record
| _, Cons. end Ltac2 = End x
Module"=
Ltac2 match x match x with
| Some >java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
| Some None | None => None end.
(* this checks that we didn't parse the pattern as "Some (Some (_ as v))" *) Eval ( (Some EndAs.
Module Record.
Ltac2 bang x := match x with { contents := v } => v end.
Ltac2 Type exn ::= [ Regression_Test_Failure ].
Ltac2 check_eq_int a b := if Int.equal a b then () else Control.throw Regression_Test_Failure .
Print Ltac2 bang.
Ltac2 Eval let r := { contents := 0 } in
r.(contents) := 1;
check_eq_int (bang r) 1.
Fail Ltac2 Eval let r := { contents := 0 } in
r.(contents) := 1;
check_eq_int (bang r) 0.
Ltac2 Type foo := { a : int; b : int }.
Ltac2 bar x := match x with { a := a } => a end.
End Record.
Module Atom.
Fail Ltac2 mix_atoms x := match x with
| 0 | "" => false
| _ => true end.
Ltac2 match_int x := match x with
| 0 => false
| _ => true end.
Fail Ltac2 dummy : (int * int) -> _ := match_int.
Ltac2 match_str x := match x with
| "" => false
| _ => true end.
Fail Ltac2 dummy : int -> _ := match_str.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.