% -*- prolog -*-

hsal_bmc(HSal, Property, Depth, Ans, CEx) :- 
  hsal(HSal, Sal), 
  sal_inf_bmc(Sal, Property, Depth, Ans, CEx).

hsal_induction(HSal, Property, Depth, Ans, CEx) :- 
  hsal(HSal, Sal), 
  sal_inf_bmc_induction(Sal, Property, Depth, Ans, CEx).

hsal_prove(HSal, Property, Depth, Ans) :-
  hsal_induction(HSal, Property, Depth, Ans, CEx).

hsal_cex(HSal, Property, Depth, CEx) :- 
  hsal_induction(HSal, Property, Depth, Ans, CEx),
  equal(Ans, 'invalid').
