mirror of
https://github.com/CatalaLang/catala.git
synced 2024-09-20 00:41:05 +03:00
Fixed error and some mixup
This commit is contained in:
parent
f14235fa5e
commit
b2d9407c2b
@ -53,6 +53,7 @@ val is_value: exp -> Tot bool
|
||||
let rec is_value e =
|
||||
match e with
|
||||
| EAbs _ _ | EThunk _ | ELit _ | ENone -> true
|
||||
| ESome (ELit (LError _)) -> false
|
||||
| ESome e' -> is_value e'
|
||||
| EList l -> is_value_list l
|
||||
| _ -> false
|
||||
|
@ -141,6 +141,7 @@ let rec l_values_dont_step (e: exp) : Lemma
|
||||
| EThunk _ -> ()
|
||||
| ELit _ -> ()
|
||||
| ENone -> ()
|
||||
| ESome e' -> l_values_dont_step e'
|
||||
| EList [] -> ()
|
||||
| EList l -> l_values_dont_step_list e l
|
||||
| _ -> ()
|
||||
@ -600,7 +601,7 @@ let step_exceptions_head_value
|
||||
(cons: (typed_l_exp tau))
|
||||
(hd: (typed_l_exp tau))
|
||||
: Pure (typed_l_exp (TOption tau) & nat)
|
||||
(requires (True))
|
||||
(requires (is_value hd))
|
||||
(ensures (fun (new_acc, n) ->
|
||||
is_value new_acc /\
|
||||
take_l_steps tau (exceptions_head_lift tau tl acc just cons hd) n ==
|
||||
@ -616,7 +617,7 @@ let step_exceptions_head_value_same_acc_result
|
||||
(acc: (typed_l_exp (TOption tau)))
|
||||
(just: (typed_l_exp TBool))
|
||||
(cons: (typed_l_exp tau))
|
||||
(hd: (typed_l_exp tau))
|
||||
(hd: (typed_l_exp tau){is_value hd})
|
||||
: Lemma (
|
||||
let new_acc, _ = step_exceptions_head_value tau tl acc just cons hd in
|
||||
let new_acc', _ = step_exceptions_head_value tau tl' acc just cons hd in
|
||||
@ -650,7 +651,7 @@ let step_exceptions_empty_some_acc
|
||||
(cons: (typed_l_exp tau))
|
||||
(acc: (typed_l_exp tau))
|
||||
: Pure nat
|
||||
(requires (is_value acc))
|
||||
(requires (is_value acc /\ not (is_error acc)))
|
||||
(ensures (fun n ->
|
||||
build_default_translation_typing [] (ESome acc) just cons tau empty;
|
||||
take_l_steps tau
|
||||
|
@ -703,6 +703,7 @@ let rec translation_correctness_exceptions_empty_count_exception_triggered
|
||||
D.typing D.empty dcons dtau /\
|
||||
dacc_lacc_sync (translate_ty dtau) dacc lacc /\
|
||||
Some? (D.step de) /\
|
||||
L.is_value lacc /\
|
||||
List.Tot.for_all D.is_value dexceptions /\
|
||||
(D.step de == (match D.empty_count dacc dexceptions with
|
||||
| D.AllEmpty -> None
|
||||
@ -748,6 +749,7 @@ let rec translation_correctness_exceptions_empty_count_exception_triggered
|
||||
n_err, l_err
|
||||
| L.ESome lacc_inner ->
|
||||
assert(L.is_value lacc_inner);
|
||||
assert(not (L.is_error lacc_inner));
|
||||
let n = step_exceptions_empty_some_acc ltau ljust lcons lacc_inner in
|
||||
n, lacc_inner
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user