Commit 65b9ce9f by Robbert Krebbers

### Document list_remove and list_remove_list.

parent 0a35ba52
 ... @@ -285,18 +285,20 @@ Inductive contains {A} : relation (list A) := ... @@ -285,18 +285,20 @@ Inductive contains {A} : relation (list A) := Infix "`contains`" := contains (at level 70) : C_scope. Infix "`contains`" := contains (at level 70) : C_scope. Hint Extern 0 (_ `contains` _) => reflexivity. Hint Extern 0 (_ `contains` _) => reflexivity. Section contains_dec_help. (** Removes [x] from the list [l]. The function returns a [Some] when the Context `{EqDecision A}. +removal succeeds and [None] when [x] is not in [l]. *) Fixpoint list_remove (x : A) (l : list A) : option (list A) := Fixpoint list_remove `{EqDecision A} (x : A) (l : list A) : option (list A) := match l with match l with | [] => None | [] => None | y :: l => if decide (x = y) then Some l else (y ::) <\$> list_remove x l | y :: l => if decide (x = y) then Some l else (y ::) <\$> list_remove x l end. end. Fixpoint list_remove_list (k : list A) (l : list A) : option (list A) := match k with (** Removes all elements in the list [k] from the list [l]. The function returns | [] => Some l | x :: k => list_remove x l ≫= list_remove_list k a [Some] when the removal succeeds and [None] some element of [k] is not in [l]. *) end. Fixpoint list_remove_list `{EqDecision A} (k : list A) (l : list A) : option (list A) := End contains_dec_help. match k with | [] => Some l | x :: k => list_remove x l ≫= list_remove_list k end. Inductive Forall3 {A B C} (P : A → B → C → Prop) : Inductive Forall3 {A B C} (P : A → B → C → Prop) : list A → list B → list C → Prop := list A → list B → list C → Prop := ... ...
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!