
module Main

  use int.Int

  type path_sel_type = { mutable sel_path : bool}

  val path_selector [@model_trace:TEMP_NAME]: path_sel_type

end


module Other

  use int.Int
  use Main

  let f (a : int)
    ensures {result = 5}
  =
    (* The counterexample should contain the node_id 5454 here but not 121 *)
    if (path_selector.sel_path <- (a = 1); ([@branch_id=5454] path_selector).sel_path) then
      5
    else
      begin path_selector.sel_path <- true;
      (* The counterexample should contain the node_id 121 but not 5454 *)
      if (path_selector.sel_path <- (a = 5); ([@branch_id=121] path_selector).sel_path) then
        15
      else
        22
      end

end
