fact: Fixpoint split x m : triple := match m with | Leaf _ => Triple (Leaf _) None (Leaf _) | Node h l y d r => match K.compare x y with | Lt => let (ll,o,rl) := split x l in Triple ll o (join rl y d r ) | Eq => Triple l (Some d) r | Gt => let (rl,o,rr) := split x r in Triple (join l y d rl) o rr end end.
imports: Coq(Bool PeanoNat BinInt FunInd Int) Coq(Orders OrdersFacts OrdersLists) MMaps(Utils Interface OrdList GenTree)