summaryrefslogtreecommitdiff
path: root/tests/lean/misc/loops/Loops
diff options
context:
space:
mode:
authorSon Ho2023-03-07 08:41:57 +0100
committerSon HO2023-06-04 21:44:33 +0200
commitfeb60683216a6d9193d6353605560c6c80a1ab41 (patch)
tree222f61e4c5cbcd166e81d82350afc54b002774df /tests/lean/misc/loops/Loops
parentb4bad8df4eabb17c71dfa7b24d79d62fc06d0a70 (diff)
Make minor modifications and regenerate the Lean files
Diffstat (limited to 'tests/lean/misc/loops/Loops')
-rw-r--r--tests/lean/misc/loops/Loops/Clauses/Template.lean2
-rw-r--r--tests/lean/misc/loops/Loops/Funs.lean517
2 files changed, 261 insertions, 258 deletions
diff --git a/tests/lean/misc/loops/Loops/Clauses/Template.lean b/tests/lean/misc/loops/Loops/Clauses/Template.lean
index 3c0f2f7c..d74f71e1 100644
--- a/tests/lean/misc/loops/Loops/Clauses/Template.lean
+++ b/tests/lean/misc/loops/Loops/Clauses/Template.lean
@@ -35,7 +35,7 @@ macro_rules
| `(tactic| sum_with_shared_borrows_loop_decreases $max $i $s) =>`(tactic| sorry)
/- [loops::clear]: termination measure -/
-@[simp] def clear_loop_terminates (v : vec UInt32) (i : USize) := (v, i)
+@[simp] def clear_loop_terminates (v : Vec UInt32) (i : USize) := (v, i)
syntax "clear_loop_decreases" term+ : tactic
diff --git a/tests/lean/misc/loops/Loops/Funs.lean b/tests/lean/misc/loops/Loops/Funs.lean
index 55f0c87d..5a81ebff 100644
--- a/tests/lean/misc/loops/Loops/Funs.lean
+++ b/tests/lean/misc/loops/Loops/Funs.lean
@@ -5,30 +5,30 @@ import Loops.Types
import Loops.Clauses.Clauses
/- [loops::sum] -/
-def sum_loop_fwd (max : UInt32) (i : UInt32) (s : UInt32) : (result UInt32) :=
- if i < max
+def sum_loop_fwd (max : UInt32) (i : UInt32) (s : UInt32) : (Result UInt32) :=
+ if h: i < max
then
do
- let s0 <- UInt32.checked_add s i
- let i0 <- UInt32.checked_add i (UInt32.ofNatCore 1 (by intlit))
+ let s0 ← UInt32.checked_add s i
+ let i0 ← UInt32.checked_add i (UInt32.ofNatCore 1 (by intlit))
sum_loop_fwd max i0 s0
else UInt32.checked_mul s (UInt32.ofNatCore 2 (by intlit))
termination_by sum_loop_fwd max i s => sum_loop_terminates max i s
decreasing_by sum_loop_decreases max i s
/- [loops::sum] -/
-def sum_fwd (max : UInt32) : result UInt32 :=
+def sum_fwd (max : UInt32) : Result UInt32 :=
sum_loop_fwd max (UInt32.ofNatCore 0 (by intlit))
(UInt32.ofNatCore 0 (by intlit))
/- [loops::sum_with_mut_borrows] -/
def sum_with_mut_borrows_loop_fwd
- (max : UInt32) (mi : UInt32) (ms : UInt32) : (result UInt32) :=
- if mi < max
+ (max : UInt32) (mi : UInt32) (ms : UInt32) : (Result UInt32) :=
+ if h: mi < max
then
do
- let ms0 <- UInt32.checked_add ms mi
- let mi0 <- UInt32.checked_add mi (UInt32.ofNatCore 1 (by intlit))
+ let ms0 ← UInt32.checked_add ms mi
+ let mi0 ← UInt32.checked_add mi (UInt32.ofNatCore 1 (by intlit))
sum_with_mut_borrows_loop_fwd max mi0 ms0
else UInt32.checked_mul ms (UInt32.ofNatCore 2 (by intlit))
termination_by sum_with_mut_borrows_loop_fwd max mi ms =>
@@ -36,18 +36,18 @@ termination_by sum_with_mut_borrows_loop_fwd max mi ms =>
decreasing_by sum_with_mut_borrows_loop_decreases max mi ms
/- [loops::sum_with_mut_borrows] -/
-def sum_with_mut_borrows_fwd (max : UInt32) : result UInt32 :=
+def sum_with_mut_borrows_fwd (max : UInt32) : Result UInt32 :=
sum_with_mut_borrows_loop_fwd max (UInt32.ofNatCore 0 (by intlit))
(UInt32.ofNatCore 0 (by intlit))
/- [loops::sum_with_shared_borrows] -/
def sum_with_shared_borrows_loop_fwd
- (max : UInt32) (i : UInt32) (s : UInt32) : (result UInt32) :=
- if i < max
+ (max : UInt32) (i : UInt32) (s : UInt32) : (Result UInt32) :=
+ if h: i < max
then
do
- let i0 <- UInt32.checked_add i (UInt32.ofNatCore 1 (by intlit))
- let s0 <- UInt32.checked_add s i0
+ let i0 ← UInt32.checked_add i (UInt32.ofNatCore 1 (by intlit))
+ let s0 ← UInt32.checked_add s i0
sum_with_shared_borrows_loop_fwd max i0 s0
else UInt32.checked_mul s (UInt32.ofNatCore 2 (by intlit))
termination_by sum_with_shared_borrows_loop_fwd max i s =>
@@ -55,271 +55,272 @@ termination_by sum_with_shared_borrows_loop_fwd max i s =>
decreasing_by sum_with_shared_borrows_loop_decreases max i s
/- [loops::sum_with_shared_borrows] -/
-def sum_with_shared_borrows_fwd (max : UInt32) : result UInt32 :=
+def sum_with_shared_borrows_fwd (max : UInt32) : Result UInt32 :=
sum_with_shared_borrows_loop_fwd max (UInt32.ofNatCore 0 (by intlit))
(UInt32.ofNatCore 0 (by intlit))
/- [loops::clear] -/
-def clear_loop_fwd_back (v : vec UInt32) (i : USize) : (result (vec UInt32)) :=
+def clear_loop_fwd_back (v : Vec UInt32) (i : USize) : (Result (Vec UInt32)) :=
let i0 := vec_len UInt32 v
- if i < i0
+ if h: i < i0
then
do
- let i1 <- USize.checked_add i (USize.ofNatCore 1 (by intlit))
- let v0 <- vec_index_mut_back UInt32 v i (UInt32.ofNatCore 0 (by intlit))
+ let i1 ← USize.checked_add i (USize.ofNatCore 1 (by intlit))
+ let v0 ← vec_index_mut_back UInt32 v i (UInt32.ofNatCore 0 (by intlit))
clear_loop_fwd_back v0 i1
- else result.ret v
+ else Result.ret v
termination_by clear_loop_fwd_back v i => clear_loop_terminates v i
decreasing_by clear_loop_decreases v i
/- [loops::clear] -/
-def clear_fwd_back (v : vec UInt32) : result (vec UInt32) :=
+def clear_fwd_back (v : Vec UInt32) : Result (Vec UInt32) :=
clear_loop_fwd_back v (USize.ofNatCore 0 (by intlit))
/- [loops::list_mem] -/
-def list_mem_loop_fwd (x : UInt32) (ls : list_t UInt32) : (result Bool) :=
- match ls with
+def list_mem_loop_fwd (x : UInt32) (ls : list_t UInt32) : (Result Bool) :=
+ match h: ls with
| list_t.ListCons y tl =>
- if y = x
- then result.ret true
+ if h: y = x
+ then Result.ret true
else list_mem_loop_fwd x tl
- | list_t.ListNil => result.ret false
+ | list_t.ListNil => Result.ret false
termination_by list_mem_loop_fwd x ls => list_mem_loop_terminates x ls
decreasing_by list_mem_loop_decreases x ls
/- [loops::list_mem] -/
-def list_mem_fwd (x : UInt32) (ls : list_t UInt32) : result Bool :=
+def list_mem_fwd (x : UInt32) (ls : list_t UInt32) : Result Bool :=
list_mem_loop_fwd x ls
/- [loops::list_nth_mut_loop] -/
def list_nth_mut_loop_loop_fwd
- (T : Type) (ls : list_t T) (i : UInt32) : (result T) :=
- match ls with
+ (T : Type) (ls : list_t T) (i : UInt32) : (Result T) :=
+ match h: ls with
| list_t.ListCons x tl =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret x
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret x
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
list_nth_mut_loop_loop_fwd T tl i0
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_loop_loop_fwd ls i =>
list_nth_mut_loop_loop_terminates T ls i
decreasing_by list_nth_mut_loop_loop_decreases ls i
/- [loops::list_nth_mut_loop] -/
-def list_nth_mut_loop_fwd (T : Type) (ls : list_t T) (i : UInt32) : result T :=
+def list_nth_mut_loop_fwd (T : Type) (ls : list_t T) (i : UInt32) : Result T :=
list_nth_mut_loop_loop_fwd T ls i
/- [loops::list_nth_mut_loop] -/
def list_nth_mut_loop_loop_back
- (T : Type) (ls : list_t T) (i : UInt32) (ret0 : T) : (result (list_t T)) :=
- match ls with
+ (T : Type) (ls : list_t T) (i : UInt32) (ret0 : T) : (Result (list_t T)) :=
+ match h: ls with
| list_t.ListCons x tl =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (list_t.ListCons ret0 tl)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (list_t.ListCons ret0 tl)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
- let tl0 <- list_nth_mut_loop_loop_back T tl i0 ret0
- result.ret (list_t.ListCons x tl0)
- | list_t.ListNil => result.fail error.panic
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let tl0 ← list_nth_mut_loop_loop_back T tl i0 ret0
+ Result.ret (list_t.ListCons x tl0)
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_loop_loop_back ls i ret0 =>
list_nth_mut_loop_loop_terminates T ls i
decreasing_by list_nth_mut_loop_loop_decreases ls i
/- [loops::list_nth_mut_loop] -/
def list_nth_mut_loop_back
- (T : Type) (ls : list_t T) (i : UInt32) (ret0 : T) : result (list_t T) :=
+ (T : Type) (ls : list_t T) (i : UInt32) (ret0 : T) : Result (list_t T) :=
list_nth_mut_loop_loop_back T ls i ret0
/- [loops::list_nth_shared_loop] -/
def list_nth_shared_loop_loop_fwd
- (T : Type) (ls : list_t T) (i : UInt32) : (result T) :=
- match ls with
+ (T : Type) (ls : list_t T) (i : UInt32) : (Result T) :=
+ match h: ls with
| list_t.ListCons x tl =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret x
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret x
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
list_nth_shared_loop_loop_fwd T tl i0
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_shared_loop_loop_fwd ls i =>
list_nth_shared_loop_loop_terminates T ls i
decreasing_by list_nth_shared_loop_loop_decreases ls i
/- [loops::list_nth_shared_loop] -/
def list_nth_shared_loop_fwd
- (T : Type) (ls : list_t T) (i : UInt32) : result T :=
+ (T : Type) (ls : list_t T) (i : UInt32) : Result T :=
list_nth_shared_loop_loop_fwd T ls i
/- [loops::get_elem_mut] -/
-def get_elem_mut_loop_fwd (x : USize) (ls : list_t USize) : (result USize) :=
- match ls with
+def get_elem_mut_loop_fwd (x : USize) (ls : list_t USize) : (Result USize) :=
+ match h: ls with
| list_t.ListCons y tl =>
- if y = x
- then result.ret y
+ if h: y = x
+ then Result.ret y
else get_elem_mut_loop_fwd x tl
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by get_elem_mut_loop_fwd x ls => get_elem_mut_loop_terminates x ls
decreasing_by get_elem_mut_loop_decreases x ls
/- [loops::get_elem_mut] -/
-def get_elem_mut_fwd (slots : vec (list_t USize)) (x : USize) : result USize :=
+def get_elem_mut_fwd (slots : Vec (list_t USize)) (x : USize) : Result USize :=
do
- let l <-
+ let l ←
vec_index_mut_fwd (list_t USize) slots (USize.ofNatCore 0 (by intlit))
get_elem_mut_loop_fwd x l
/- [loops::get_elem_mut] -/
def get_elem_mut_loop_back
- (x : USize) (ls : list_t USize) (ret0 : USize) : (result (list_t USize)) :=
- match ls with
+ (x : USize) (ls : list_t USize) (ret0 : USize) : (Result (list_t USize)) :=
+ match h: ls with
| list_t.ListCons y tl =>
- if y = x
- then result.ret (list_t.ListCons ret0 tl)
+ if h: y = x
+ then Result.ret (list_t.ListCons ret0 tl)
else
do
- let tl0 <- get_elem_mut_loop_back x tl ret0
- result.ret (list_t.ListCons y tl0)
- | list_t.ListNil => result.fail error.panic
+ let tl0 ← get_elem_mut_loop_back x tl ret0
+ Result.ret (list_t.ListCons y tl0)
+ | list_t.ListNil => Result.fail Error.panic
termination_by get_elem_mut_loop_back x ls ret0 =>
get_elem_mut_loop_terminates x ls
decreasing_by get_elem_mut_loop_decreases x ls
/- [loops::get_elem_mut] -/
def get_elem_mut_back
- (slots : vec (list_t USize)) (x : USize) (ret0 : USize) :
- result (vec (list_t USize))
+ (slots : Vec (list_t USize)) (x : USize) (ret0 : USize) :
+ Result (Vec (list_t USize))
:=
do
- let l <-
+ let l ←
vec_index_mut_fwd (list_t USize) slots (USize.ofNatCore 0 (by intlit))
- let l0 <- get_elem_mut_loop_back x l ret0
+ let l0 ← get_elem_mut_loop_back x l ret0
vec_index_mut_back (list_t USize) slots (USize.ofNatCore 0 (by intlit)) l0
/- [loops::get_elem_shared] -/
def get_elem_shared_loop_fwd
- (x : USize) (ls : list_t USize) : (result USize) :=
- match ls with
+ (x : USize) (ls : list_t USize) : (Result USize) :=
+ match h: ls with
| list_t.ListCons y tl =>
- if y = x
- then result.ret y
+ if h: y = x
+ then Result.ret y
else get_elem_shared_loop_fwd x tl
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by get_elem_shared_loop_fwd x ls =>
get_elem_shared_loop_terminates x ls
decreasing_by get_elem_shared_loop_decreases x ls
/- [loops::get_elem_shared] -/
def get_elem_shared_fwd
- (slots : vec (list_t USize)) (x : USize) : result USize :=
+ (slots : Vec (list_t USize)) (x : USize) : Result USize :=
do
- let l <- vec_index_fwd (list_t USize) slots (USize.ofNatCore 0 (by intlit))
+ let l ←
+ vec_index_fwd (list_t USize) slots (USize.ofNatCore 0 (by intlit))
get_elem_shared_loop_fwd x l
/- [loops::id_mut] -/
-def id_mut_fwd (T : Type) (ls : list_t T) : result (list_t T) :=
- result.ret ls
+def id_mut_fwd (T : Type) (ls : list_t T) : Result (list_t T) :=
+ Result.ret ls
/- [loops::id_mut] -/
def id_mut_back
- (T : Type) (ls : list_t T) (ret0 : list_t T) : result (list_t T) :=
- result.ret ret0
+ (T : Type) (ls : list_t T) (ret0 : list_t T) : Result (list_t T) :=
+ Result.ret ret0
/- [loops::id_shared] -/
-def id_shared_fwd (T : Type) (ls : list_t T) : result (list_t T) :=
- result.ret ls
+def id_shared_fwd (T : Type) (ls : list_t T) : Result (list_t T) :=
+ Result.ret ls
/- [loops::list_nth_mut_loop_with_id] -/
def list_nth_mut_loop_with_id_loop_fwd
- (T : Type) (i : UInt32) (ls : list_t T) : (result T) :=
- match ls with
+ (T : Type) (i : UInt32) (ls : list_t T) : (Result T) :=
+ match h: ls with
| list_t.ListCons x tl =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret x
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret x
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
list_nth_mut_loop_with_id_loop_fwd T i0 tl
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_loop_with_id_loop_fwd i ls =>
list_nth_mut_loop_with_id_loop_terminates T i ls
decreasing_by list_nth_mut_loop_with_id_loop_decreases i ls
/- [loops::list_nth_mut_loop_with_id] -/
def list_nth_mut_loop_with_id_fwd
- (T : Type) (ls : list_t T) (i : UInt32) : result T :=
+ (T : Type) (ls : list_t T) (i : UInt32) : Result T :=
do
- let ls0 <- id_mut_fwd T ls
+ let ls0 ← id_mut_fwd T ls
list_nth_mut_loop_with_id_loop_fwd T i ls0
/- [loops::list_nth_mut_loop_with_id] -/
def list_nth_mut_loop_with_id_loop_back
- (T : Type) (i : UInt32) (ls : list_t T) (ret0 : T) : (result (list_t T)) :=
- match ls with
+ (T : Type) (i : UInt32) (ls : list_t T) (ret0 : T) : (Result (list_t T)) :=
+ match h: ls with
| list_t.ListCons x tl =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (list_t.ListCons ret0 tl)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (list_t.ListCons ret0 tl)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
- let tl0 <- list_nth_mut_loop_with_id_loop_back T i0 tl ret0
- result.ret (list_t.ListCons x tl0)
- | list_t.ListNil => result.fail error.panic
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let tl0 ← list_nth_mut_loop_with_id_loop_back T i0 tl ret0
+ Result.ret (list_t.ListCons x tl0)
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_loop_with_id_loop_back i ls ret0 =>
list_nth_mut_loop_with_id_loop_terminates T i ls
decreasing_by list_nth_mut_loop_with_id_loop_decreases i ls
/- [loops::list_nth_mut_loop_with_id] -/
def list_nth_mut_loop_with_id_back
- (T : Type) (ls : list_t T) (i : UInt32) (ret0 : T) : result (list_t T) :=
+ (T : Type) (ls : list_t T) (i : UInt32) (ret0 : T) : Result (list_t T) :=
do
- let ls0 <- id_mut_fwd T ls
- let l <- list_nth_mut_loop_with_id_loop_back T i ls0 ret0
+ let ls0 ← id_mut_fwd T ls
+ let l ← list_nth_mut_loop_with_id_loop_back T i ls0 ret0
id_mut_back T ls l
/- [loops::list_nth_shared_loop_with_id] -/
def list_nth_shared_loop_with_id_loop_fwd
- (T : Type) (i : UInt32) (ls : list_t T) : (result T) :=
- match ls with
+ (T : Type) (i : UInt32) (ls : list_t T) : (Result T) :=
+ match h: ls with
| list_t.ListCons x tl =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret x
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret x
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
list_nth_shared_loop_with_id_loop_fwd T i0 tl
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_shared_loop_with_id_loop_fwd i ls =>
list_nth_shared_loop_with_id_loop_terminates T i ls
decreasing_by list_nth_shared_loop_with_id_loop_decreases i ls
/- [loops::list_nth_shared_loop_with_id] -/
def list_nth_shared_loop_with_id_fwd
- (T : Type) (ls : list_t T) (i : UInt32) : result T :=
+ (T : Type) (ls : list_t T) (i : UInt32) : Result T :=
do
- let ls0 <- id_shared_fwd T ls
+ let ls0 ← id_shared_fwd T ls
list_nth_shared_loop_with_id_loop_fwd T i ls0
/- [loops::list_nth_mut_loop_pair] -/
def list_nth_mut_loop_pair_loop_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- (result (T × T))
+ (Result (T × T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (x0, x1)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (x0, x1)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
list_nth_mut_loop_pair_loop_fwd T tl0 tl1 i0
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_loop_pair_loop_fwd ls0 ls1 i =>
list_nth_mut_loop_pair_loop_terminates T ls0 ls1 i
decreasing_by list_nth_mut_loop_pair_loop_decreases ls0 ls1 i
@@ -327,28 +328,28 @@ decreasing_by list_nth_mut_loop_pair_loop_decreases ls0 ls1 i
/- [loops::list_nth_mut_loop_pair] -/
def list_nth_mut_loop_pair_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- result (T × T)
+ Result (T × T)
:=
list_nth_mut_loop_pair_loop_fwd T ls0 ls1 i
/- [loops::list_nth_mut_loop_pair] -/
def list_nth_mut_loop_pair_loop_back'a
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : T) :
- (result (list_t T))
+ (Result (list_t T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (list_t.ListCons ret0 tl0)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (list_t.ListCons ret0 tl0)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
- let tl00 <- list_nth_mut_loop_pair_loop_back'a T tl0 tl1 i0 ret0
- result.ret (list_t.ListCons x0 tl00)
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let tl00 ← list_nth_mut_loop_pair_loop_back'a T tl0 tl1 i0 ret0
+ Result.ret (list_t.ListCons x0 tl00)
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_loop_pair_loop_back'a ls0 ls1 i ret0 =>
list_nth_mut_loop_pair_loop_terminates T ls0 ls1 i
decreasing_by list_nth_mut_loop_pair_loop_decreases ls0 ls1 i
@@ -356,28 +357,28 @@ decreasing_by list_nth_mut_loop_pair_loop_decreases ls0 ls1 i
/- [loops::list_nth_mut_loop_pair] -/
def list_nth_mut_loop_pair_back'a
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : T) :
- result (list_t T)
+ Result (list_t T)
:=
list_nth_mut_loop_pair_loop_back'a T ls0 ls1 i ret0
/- [loops::list_nth_mut_loop_pair] -/
def list_nth_mut_loop_pair_loop_back'b
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : T) :
- (result (list_t T))
+ (Result (list_t T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (list_t.ListCons ret0 tl1)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (list_t.ListCons ret0 tl1)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
- let tl10 <- list_nth_mut_loop_pair_loop_back'b T tl0 tl1 i0 ret0
- result.ret (list_t.ListCons x1 tl10)
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let tl10 ← list_nth_mut_loop_pair_loop_back'b T tl0 tl1 i0 ret0
+ Result.ret (list_t.ListCons x1 tl10)
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_loop_pair_loop_back'b ls0 ls1 i ret0 =>
list_nth_mut_loop_pair_loop_terminates T ls0 ls1 i
decreasing_by list_nth_mut_loop_pair_loop_decreases ls0 ls1 i
@@ -385,27 +386,27 @@ decreasing_by list_nth_mut_loop_pair_loop_decreases ls0 ls1 i
/- [loops::list_nth_mut_loop_pair] -/
def list_nth_mut_loop_pair_back'b
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : T) :
- result (list_t T)
+ Result (list_t T)
:=
list_nth_mut_loop_pair_loop_back'b T ls0 ls1 i ret0
/- [loops::list_nth_shared_loop_pair] -/
def list_nth_shared_loop_pair_loop_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- (result (T × T))
+ (Result (T × T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (x0, x1)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (x0, x1)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
list_nth_shared_loop_pair_loop_fwd T tl0 tl1 i0
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_shared_loop_pair_loop_fwd ls0 ls1 i =>
list_nth_shared_loop_pair_loop_terminates T ls0 ls1 i
decreasing_by list_nth_shared_loop_pair_loop_decreases ls0 ls1 i
@@ -413,27 +414,27 @@ decreasing_by list_nth_shared_loop_pair_loop_decreases ls0 ls1 i
/- [loops::list_nth_shared_loop_pair] -/
def list_nth_shared_loop_pair_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- result (T × T)
+ Result (T × T)
:=
list_nth_shared_loop_pair_loop_fwd T ls0 ls1 i
/- [loops::list_nth_mut_loop_pair_merge] -/
def list_nth_mut_loop_pair_merge_loop_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- (result (T × T))
+ (Result (T × T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (x0, x1)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (x0, x1)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
list_nth_mut_loop_pair_merge_loop_fwd T tl0 tl1 i0
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_loop_pair_merge_loop_fwd ls0 ls1 i =>
list_nth_mut_loop_pair_merge_loop_terminates T ls0 ls1 i
decreasing_by list_nth_mut_loop_pair_merge_loop_decreases ls0 ls1 i
@@ -441,31 +442,31 @@ decreasing_by list_nth_mut_loop_pair_merge_loop_decreases ls0 ls1 i
/- [loops::list_nth_mut_loop_pair_merge] -/
def list_nth_mut_loop_pair_merge_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- result (T × T)
+ Result (T × T)
:=
list_nth_mut_loop_pair_merge_loop_fwd T ls0 ls1 i
/- [loops::list_nth_mut_loop_pair_merge] -/
def list_nth_mut_loop_pair_merge_loop_back
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : (T × T)) :
- (result ((list_t T) × (list_t T)))
+ (Result ((list_t T) × (list_t T)))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
then
let (t, t0) := ret0
- result.ret (list_t.ListCons t tl0, list_t.ListCons t0 tl1)
+ Result.ret (list_t.ListCons t tl0, list_t.ListCons t0 tl1)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
- let (tl00, tl10) <-
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let (tl00, tl10) ←
list_nth_mut_loop_pair_merge_loop_back T tl0 tl1 i0 ret0
- result.ret (list_t.ListCons x0 tl00, list_t.ListCons x1 tl10)
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ Result.ret (list_t.ListCons x0 tl00, list_t.ListCons x1 tl10)
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_loop_pair_merge_loop_back ls0 ls1 i ret0 =>
list_nth_mut_loop_pair_merge_loop_terminates T ls0 ls1 i
decreasing_by list_nth_mut_loop_pair_merge_loop_decreases ls0 ls1 i
@@ -473,27 +474,27 @@ decreasing_by list_nth_mut_loop_pair_merge_loop_decreases ls0 ls1 i
/- [loops::list_nth_mut_loop_pair_merge] -/
def list_nth_mut_loop_pair_merge_back
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : (T × T)) :
- result ((list_t T) × (list_t T))
+ Result ((list_t T) × (list_t T))
:=
list_nth_mut_loop_pair_merge_loop_back T ls0 ls1 i ret0
/- [loops::list_nth_shared_loop_pair_merge] -/
def list_nth_shared_loop_pair_merge_loop_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- (result (T × T))
+ (Result (T × T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (x0, x1)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (x0, x1)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
list_nth_shared_loop_pair_merge_loop_fwd T tl0 tl1 i0
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_shared_loop_pair_merge_loop_fwd ls0 ls1 i =>
list_nth_shared_loop_pair_merge_loop_terminates T ls0 ls1 i
decreasing_by list_nth_shared_loop_pair_merge_loop_decreases ls0 ls1 i
@@ -501,27 +502,27 @@ decreasing_by list_nth_shared_loop_pair_merge_loop_decreases ls0 ls1 i
/- [loops::list_nth_shared_loop_pair_merge] -/
def list_nth_shared_loop_pair_merge_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- result (T × T)
+ Result (T × T)
:=
list_nth_shared_loop_pair_merge_loop_fwd T ls0 ls1 i
/- [loops::list_nth_mut_shared_loop_pair] -/
def list_nth_mut_shared_loop_pair_loop_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- (result (T × T))
+ (Result (T × T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (x0, x1)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (x0, x1)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
list_nth_mut_shared_loop_pair_loop_fwd T tl0 tl1 i0
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_shared_loop_pair_loop_fwd ls0 ls1 i =>
list_nth_mut_shared_loop_pair_loop_terminates T ls0 ls1 i
decreasing_by list_nth_mut_shared_loop_pair_loop_decreases ls0 ls1 i
@@ -529,28 +530,29 @@ decreasing_by list_nth_mut_shared_loop_pair_loop_decreases ls0 ls1 i
/- [loops::list_nth_mut_shared_loop_pair] -/
def list_nth_mut_shared_loop_pair_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- result (T × T)
+ Result (T × T)
:=
list_nth_mut_shared_loop_pair_loop_fwd T ls0 ls1 i
/- [loops::list_nth_mut_shared_loop_pair] -/
def list_nth_mut_shared_loop_pair_loop_back
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : T) :
- (result (list_t T))
+ (Result (list_t T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (list_t.ListCons ret0 tl0)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (list_t.ListCons ret0 tl0)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
- let tl00 <- list_nth_mut_shared_loop_pair_loop_back T tl0 tl1 i0 ret0
- result.ret (list_t.ListCons x0 tl00)
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let tl00 ←
+ list_nth_mut_shared_loop_pair_loop_back T tl0 tl1 i0 ret0
+ Result.ret (list_t.ListCons x0 tl00)
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_shared_loop_pair_loop_back ls0 ls1 i ret0 =>
list_nth_mut_shared_loop_pair_loop_terminates T ls0 ls1 i
decreasing_by list_nth_mut_shared_loop_pair_loop_decreases ls0 ls1 i
@@ -558,27 +560,27 @@ decreasing_by list_nth_mut_shared_loop_pair_loop_decreases ls0 ls1 i
/- [loops::list_nth_mut_shared_loop_pair] -/
def list_nth_mut_shared_loop_pair_back
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : T) :
- result (list_t T)
+ Result (list_t T)
:=
list_nth_mut_shared_loop_pair_loop_back T ls0 ls1 i ret0
/- [loops::list_nth_mut_shared_loop_pair_merge] -/
def list_nth_mut_shared_loop_pair_merge_loop_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- (result (T × T))
+ (Result (T × T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (x0, x1)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (x0, x1)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
list_nth_mut_shared_loop_pair_merge_loop_fwd T tl0 tl1 i0
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_shared_loop_pair_merge_loop_fwd ls0 ls1 i =>
list_nth_mut_shared_loop_pair_merge_loop_terminates T ls0 ls1 i
decreasing_by list_nth_mut_shared_loop_pair_merge_loop_decreases ls0 ls1 i
@@ -586,29 +588,29 @@ decreasing_by list_nth_mut_shared_loop_pair_merge_loop_decreases ls0 ls1 i
/- [loops::list_nth_mut_shared_loop_pair_merge] -/
def list_nth_mut_shared_loop_pair_merge_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- result (T × T)
+ Result (T × T)
:=
list_nth_mut_shared_loop_pair_merge_loop_fwd T ls0 ls1 i
/- [loops::list_nth_mut_shared_loop_pair_merge] -/
def list_nth_mut_shared_loop_pair_merge_loop_back
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : T) :
- (result (list_t T))
+ (Result (list_t T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (list_t.ListCons ret0 tl0)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (list_t.ListCons ret0 tl0)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
- let tl00 <-
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let tl00 ←
list_nth_mut_shared_loop_pair_merge_loop_back T tl0 tl1 i0 ret0
- result.ret (list_t.ListCons x0 tl00)
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ Result.ret (list_t.ListCons x0 tl00)
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_mut_shared_loop_pair_merge_loop_back ls0 ls1 i ret0 =>
list_nth_mut_shared_loop_pair_merge_loop_terminates T ls0 ls1 i
decreasing_by list_nth_mut_shared_loop_pair_merge_loop_decreases ls0 ls1 i
@@ -616,27 +618,27 @@ decreasing_by list_nth_mut_shared_loop_pair_merge_loop_decreases ls0 ls1 i
/- [loops::list_nth_mut_shared_loop_pair_merge] -/
def list_nth_mut_shared_loop_pair_merge_back
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : T) :
- result (list_t T)
+ Result (list_t T)
:=
list_nth_mut_shared_loop_pair_merge_loop_back T ls0 ls1 i ret0
/- [loops::list_nth_shared_mut_loop_pair] -/
def list_nth_shared_mut_loop_pair_loop_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- (result (T × T))
+ (Result (T × T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (x0, x1)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (x0, x1)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
list_nth_shared_mut_loop_pair_loop_fwd T tl0 tl1 i0
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_shared_mut_loop_pair_loop_fwd ls0 ls1 i =>
list_nth_shared_mut_loop_pair_loop_terminates T ls0 ls1 i
decreasing_by list_nth_shared_mut_loop_pair_loop_decreases ls0 ls1 i
@@ -644,28 +646,29 @@ decreasing_by list_nth_shared_mut_loop_pair_loop_decreases ls0 ls1 i
/- [loops::list_nth_shared_mut_loop_pair] -/
def list_nth_shared_mut_loop_pair_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- result (T × T)
+ Result (T × T)
:=
list_nth_shared_mut_loop_pair_loop_fwd T ls0 ls1 i
/- [loops::list_nth_shared_mut_loop_pair] -/
def list_nth_shared_mut_loop_pair_loop_back
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : T) :
- (result (list_t T))
+ (Result (list_t T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (list_t.ListCons ret0 tl1)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (list_t.ListCons ret0 tl1)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
- let tl10 <- list_nth_shared_mut_loop_pair_loop_back T tl0 tl1 i0 ret0
- result.ret (list_t.ListCons x1 tl10)
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let tl10 ←
+ list_nth_shared_mut_loop_pair_loop_back T tl0 tl1 i0 ret0
+ Result.ret (list_t.ListCons x1 tl10)
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_shared_mut_loop_pair_loop_back ls0 ls1 i ret0 =>
list_nth_shared_mut_loop_pair_loop_terminates T ls0 ls1 i
decreasing_by list_nth_shared_mut_loop_pair_loop_decreases ls0 ls1 i
@@ -673,27 +676,27 @@ decreasing_by list_nth_shared_mut_loop_pair_loop_decreases ls0 ls1 i
/- [loops::list_nth_shared_mut_loop_pair] -/
def list_nth_shared_mut_loop_pair_back
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : T) :
- result (list_t T)
+ Result (list_t T)
:=
list_nth_shared_mut_loop_pair_loop_back T ls0 ls1 i ret0
/- [loops::list_nth_shared_mut_loop_pair_merge] -/
def list_nth_shared_mut_loop_pair_merge_loop_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- (result (T × T))
+ (Result (T × T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (x0, x1)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (x0, x1)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
list_nth_shared_mut_loop_pair_merge_loop_fwd T tl0 tl1 i0
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_shared_mut_loop_pair_merge_loop_fwd ls0 ls1 i =>
list_nth_shared_mut_loop_pair_merge_loop_terminates T ls0 ls1 i
decreasing_by list_nth_shared_mut_loop_pair_merge_loop_decreases ls0 ls1 i
@@ -701,29 +704,29 @@ decreasing_by list_nth_shared_mut_loop_pair_merge_loop_decreases ls0 ls1 i
/- [loops::list_nth_shared_mut_loop_pair_merge] -/
def list_nth_shared_mut_loop_pair_merge_fwd
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) :
- result (T × T)
+ Result (T × T)
:=
list_nth_shared_mut_loop_pair_merge_loop_fwd T ls0 ls1 i
/- [loops::list_nth_shared_mut_loop_pair_merge] -/
def list_nth_shared_mut_loop_pair_merge_loop_back
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : T) :
- (result (list_t T))
+ (Result (list_t T))
:=
- match ls0 with
+ match h: ls0 with
| list_t.ListCons x0 tl0 =>
- match ls1 with
+ match h: ls1 with
| list_t.ListCons x1 tl1 =>
- if i = (UInt32.ofNatCore 0 (by intlit))
- then result.ret (list_t.ListCons ret0 tl1)
+ if h: i = (UInt32.ofNatCore 0 (by intlit))
+ then Result.ret (list_t.ListCons ret0 tl1)
else
do
- let i0 <- UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
- let tl10 <-
+ let i0 ← UInt32.checked_sub i (UInt32.ofNatCore 1 (by intlit))
+ let tl10 ←
list_nth_shared_mut_loop_pair_merge_loop_back T tl0 tl1 i0 ret0
- result.ret (list_t.ListCons x1 tl10)
- | list_t.ListNil => result.fail error.panic
- | list_t.ListNil => result.fail error.panic
+ Result.ret (list_t.ListCons x1 tl10)
+ | list_t.ListNil => Result.fail Error.panic
+ | list_t.ListNil => Result.fail Error.panic
termination_by list_nth_shared_mut_loop_pair_merge_loop_back ls0 ls1 i ret0 =>
list_nth_shared_mut_loop_pair_merge_loop_terminates T ls0 ls1 i
decreasing_by list_nth_shared_mut_loop_pair_merge_loop_decreases ls0 ls1 i
@@ -731,7 +734,7 @@ decreasing_by list_nth_shared_mut_loop_pair_merge_loop_decreases ls0 ls1 i
/- [loops::list_nth_shared_mut_loop_pair_merge] -/
def list_nth_shared_mut_loop_pair_merge_back
(T : Type) (ls0 : list_t T) (ls1 : list_t T) (i : UInt32) (ret0 : T) :
- result (list_t T)
+ Result (list_t T)
:=
list_nth_shared_mut_loop_pair_merge_loop_back T ls0 ls1 i ret0