lem

Lem is a tool for lightweight executable mathematics
Module Lem_list
val list_null : 'a list -> bool
val listEqualBy : ( 'a -> 'b -> bool ) -> 'a list -> 'b list -> bool
val instance_Basic_classes_Eq_list_dict : 'a Lem_basic_classes.eq_class -> 'a list Lem_basic_classes.eq_class
val lexicographic_compare : ( 'a -> 'b -> int ) -> 'a list -> 'b list -> int
val lexicographic_less : ( 'a -> 'b -> bool ) -> ( 'a -> 'b -> bool ) -> 'a list -> 'b list -> bool
val lexicographic_less_eq : ( 'a -> 'b -> bool ) -> ( 'a -> 'b -> bool ) -> 'a list -> 'b list -> bool
val instance_Basic_classes_Ord_list_dict : 'a Lem_basic_classes.ord_class -> 'a list Lem_basic_classes.ord_class
val snoc : 'a -> 'a list -> 'a list
val map_tr : 'b list -> ( 'a -> 'b ) -> 'a list -> 'b list
val count_map : ( 'a -> 'b ) -> 'a list -> int -> 'b list
val map : ( 'a -> 'b ) -> 'a list -> 'b list
val dest_init_aux : 'a list -> 'a -> 'a list -> 'a list * 'a
val dest_init : 'a list -> ('a list * 'a) option
val list_index : 'a list -> Nat_num.nat -> 'a option
val find_indices_aux : int -> ( 'a -> bool ) -> 'a list -> int list
val find_indices : ( 'a -> bool ) -> 'a list -> int list
val find_index : ( 'a -> bool ) -> 'a list -> int option
val genlist : ( Nat_num.nat -> 'a ) -> Nat_num.nat -> 'a list
val replicate : Nat_num.nat -> 'a -> 'a list
val splitAtAcc : 'a list -> Nat_num.nat -> 'a list -> 'a list * 'a list
val split_at : Nat_num.nat -> 'a list -> 'a list * 'a list
val take : Nat_num.nat -> 'a list -> 'a list
val drop : Nat_num.nat -> 'a list -> 'a list
val splitWhile_tr : ( 'a -> bool ) -> 'a list -> 'a list -> 'a list * 'a list
val splitWhile : ( 'a -> bool ) -> 'a list -> 'a list * 'a list
val takeWhile : ( 'a -> bool ) -> 'a list -> 'a list
val dropWhile : ( 'a -> bool ) -> 'a list -> 'a list
val isPrefixOf : 'a Lem_basic_classes.eq_class -> 'a list -> 'a list -> bool
val list_update : 'a list -> Nat_num.nat -> 'a -> 'a list
val elemBy : ( 'a -> 'b -> bool ) -> 'a -> 'b list -> bool
val elem : 'a Lem_basic_classes.eq_class -> 'a -> 'a list -> bool
val list_find_opt : ( 'a -> bool ) -> 'a list -> 'a option
val lookupBy : ( 'a -> 'c -> bool ) -> 'a -> ('c * 'b) list -> 'b option
val reversePartition : ( 'a -> bool ) -> 'a list -> 'a list * 'a list
val list_delete_first : ( 'a -> bool ) -> 'a list -> 'a list option
val list_delete : ( 'b -> 'a -> bool ) -> 'b -> 'a list -> 'a list
val list_combine : 'a list -> 'b list -> ('a * 'b) list
val instance_Basic_classes_SetType_list_dict : 'a Lem_basic_classes.setType_class -> 'a list Lem_basic_classes.setType_class
val allDistinct : 'a Lem_basic_classes.eq_class -> 'a list -> bool
val mapMaybe : ( 'a -> 'b option ) -> 'a list -> 'b list
val mapiAux : ( int -> 'b -> 'a ) -> int -> 'b list -> 'a list
val mapi : ( int -> 'a -> 'b ) -> 'a list -> 'b list
val deletes : 'a Lem_basic_classes.eq_class -> 'a list -> 'a list -> 'a list
val catMaybes : 'a option list -> 'a list