view src/agda-hoare-term.agda @ 0:85ee6174f90a default tip

add paper
author ryokka
date Wed, 12 Feb 2020 17:55:00 +0900
parents
children
line wrap: on
line source

loopP' : {l : Level} {t : Set l} → Envc → (exit : Envc → t) → t
loopP' record { c10 = c10 ; varn = zero ; vari = vari } exit =
  exit (record { c10 = c10 ; varn = zero ; vari = vari })
loopP' record { c10 = c10 ; varn = (suc varn₁) ; vari = vari } exit =
  whileLoopP' (record { c10 = c10 ; varn = (suc varn₁) ; vari = vari })
  (λ env → loopP' (record { c10 = c10 ; varn = varn₁ ; vari = vari }) exit ) exit

whileTestPCall' : (c10 :  ℕ ) → Envc
whileTestPCall' c10 = whileTestP' {_} {_} c10 (λ env → loopP' env (λ env →  env))

-- whileTestP' 10
-- record { c10 = 10 ; varn = 0 ; vari = 10 }