id-meta : ℕ -> ℕ -> SingleLinkedStack ℕ -> Meta id-meta n e s = record { context = record {n = n ; element = just e} ; nextCS = (N.cs id) ; stack = s} push-pop-type : ℕ -> ℕ -> ℕ -> Element ℕ -> Set₁ push-pop-type n e x s = M.exec (M.csComp {meta} (M.cs popOnce) (M.cs pushOnce)) meta ≡ meta where meta = id-meta n e record {top = just (cons x (just s))} push-pop : (n e x : ℕ) -> (s : Element ℕ) -> push-pop-type n e x s push-pop n e x s = refl