diff options
| author | Christopher Pulte | 2016-10-26 11:49:55 +0100 |
|---|---|---|
| committer | Christopher Pulte | 2016-10-26 11:49:55 +0100 |
| commit | 1dc7c1c7984d8a5bd2750f88a249f33fdebb498b (patch) | |
| tree | 2da36e5d592f40d2af8018b2ee6ccede9e7fd0f1 /src/gen_lib/sail_values.lem | |
| parent | c9d4764211f32657e571bb6c09a7851618629a30 (diff) | |
shallow embedding fixes
Diffstat (limited to 'src/gen_lib/sail_values.lem')
| -rw-r--r-- | src/gen_lib/sail_values.lem | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gen_lib/sail_values.lem b/src/gen_lib/sail_values.lem index 186dddc3..6f5dfb28 100644 --- a/src/gen_lib/sail_values.lem +++ b/src/gen_lib/sail_values.lem @@ -38,6 +38,16 @@ let get_dir (Vector _ _ ord) = ord let get_start (Vector _ s _) = s let length (Vector bs _ _) = integerFromNat (length bs) +val set_vector_start : forall 'a. integer -> vector 'a -> vector 'a +let set_vector_start new_start (Vector bs _ is_inc) = + Vector bs new_start is_inc + +let copy v = + set_vector_start (if (get_dir v) then 0 else (length v - 1)) v + +let set_vector_start_to_length v = + set_vector_start (length v - 1) v + let vector_concat (Vector bs start is_inc) (Vector bs' _ _) = Vector (bs ++ bs') start is_inc |
