let tm_admit ctag u typ post = Tm_Admit { ctag; u; typ; post }
let tm_admit ctag u typ post =
Tm_Admit ({ ctag = ctag; u = u; typ = typ; post = post })
Pulse.Syntax.Builder.fst.checked
Pulse.Syntax.fst.checked prims.fst.checked FStar.Pervasives.fsti.checked
Pulse.Syntax.Builder.fst
Pulse.Syntax.Base.ctag Pulse.Syntax.Base.universe Pulse.Syntax.Base.term FStar.Pervasives.Native.option Pulse.Syntax.Base.Tm_Admit Pulse.Syntax.Base.Mkst_term'__Tm_Admit__payload Pulse.Syntax.Base.st_term'
module Pulse.Syntax.Builder
open Pulse.Syntax

let pat_var s = Pat_Var s
let pat_const c = Pat_Constant c
let pat_cons fv vs = Pat_Cons fv vs

let tm_return ctag insert_eq term = Tm_Return { ctag; insert_eq; term }
let tm_abs b q ascription body = Tm_Abs { b; q; ascription; body }
let tm_stapp head arg_qual arg = Tm_STApp { head; arg_qual; arg }
let tm_bind binder head body = Tm_Bind { binder; head; body }
let tm_totbind binder head body = Tm_TotBind { binder; head; body }
let tm_if b then_ else_ post = Tm_If { b; then_; else_; post }
let tm_match sc returns_ brs = Tm_Match {sc; returns_; brs}
let tm_elim_exists p = Tm_ElimExists { p }
let tm_intro_exists p witnesses = Tm_IntroExists { p; witnesses }
let tm_while invariant condition condition_var body = Tm_While { invariant; condition; condition_var; body }
let tm_par pre1 body1 post1 pre2 body2 post2 = Tm_Par { pre1; body1; post1; pre2; body2; post2 }
let tm_with_local binder initializer body = Tm_WithLocal { binder; initializer; body }
let tm_with_local_array binder initializer length body = Tm_WithLocalArray { binder; initializer; length; body }
let tm_rewrite t1 t2 = Tm_Rewrite { t1; t2 }
val tm_admit : ctag: Pulse.Syntax.Base.ctag ->
    u57: Pulse.Syntax.Base.universe ->
    typ: Pulse.Syntax.Base.term ->
    post: FStar.Pervasives.Native.option Pulse.Syntax.Base.term
  -> Pulse.Syntax.Base.st_term'

    ctag: Pulse.Syntax.Base.ctag ->
    u57: Pulse.Syntax.Base.universe ->
    typ: Pulse.Syntax.Base.term ->
    post: FStar.Pervasives.Native.option Pulse.Syntax.Base.term
  -> Pulse.Syntax.Base.st_term'