let size3 =
List.fold_left countvar (c+String.length constr) vars in
countterm size3 action) size2 pl
+ | A.Cast (bo,ty) ->
+ countterm (countterm (current_size + 3) bo) ty
| A.LetIn (var,s,t) ->
let size1 = countvar current_size var in
let size2 = countterm size1 s in
Box.smallskip;
Box.Text([],"with")]);
Box.indent plbox])
+ | A.Cast (bo,ty) ->
+ Box.V(make_attributes [Some "helm","xref"] [xref],
+ [Box.H([],[Box.Text([],"("); ast2box ~tail:[] bo]);
+ Box.H([],[Box.Text([],":"); ast2box ~tail ty;Box.Text([],")")])])
| A.LetIn (var, s, t) ->
Box.V(make_attributes [Some "helm","xref"] [xref],
(make_def "let" var s "in")@[ast2box ~tail t])
| `None ->
P.Mrow(aattr, m_open_fence :: (aux hd) :: (make_args tl) @
[m_close_fence]))
+ | A.Cast (bo,ty) ->
+ let attr = make_attributes [Some "helm","xref"] [xref] in
+ P.Mrow (attr,
+ [m_open_fence; aux bo; P.Mo ([],":"); aux ty; m_close_fence])
| A.Binder (`Pi, (Cic.Anonymous, Some ty), body)
| A.Binder (`Forall, (Cic.Anonymous, Some ty), body) ->
let attr = make_attributes [Some "helm","xref"] [xref] in
sprintf "%smatch %s with %s"
(match typ with None -> "" | Some t -> sprintf "<%s>" (pp_term t))
(pp_term term) (pp_patterns patterns)
+ | CicAst.Cast (t1,t2) -> sprintf "(%s: %s)" (pp_term t1) (pp_term t2)
| CicAst.LetIn (var, t1, t2) ->
sprintf "let %s = %s in %s" (pp_capture_variable var) (pp_term t1)
(pp_term t2)