-
Notifications
You must be signed in to change notification settings - Fork 0
/
a_base.v
23 lines (16 loc) · 604 Bytes
/
a_base.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Require Export List.
Set Implicit Arguments.
Module Type base_mod.
Delimit Scope My_scope with M.
Open Scope My_scope.
Parameter PropVars : Set.
Hypothesis Varseq_dec : forall x y:PropVars, {x = y} + {x <> y}.
(** We define a construction on lists which we'll use often later.
[map_fold_right f g a l] equals fold_right [g a (map f l)], i.e.
[map_fold_right f g a [x0; ... ; xn]] equals [g (f x0) (g (f x1) (... g (f(xn) a)...)]
*)
Fixpoint map_fold_right (A B:Type) (f : B -> A) (g : A -> A -> A) a l := match l with
| nil => a
| b::l2 => g (f b) (map_fold_right f g a l2)
end.
End base_mod.