Wp.AutoSourceIt is always safe to apply strategies to any goal.
val instance :
?priority:float ->
Tactical.selection ->
Tactical.selection list ->
Strategy.strategyval lemma :
?priority:float ->
?at:Tactical.selection ->
string ->
Tactical.selection list ->
Strategy.strategyval range :
?priority:float ->
Tactical.selection ->
vmin:int ->
vmax:int ->
Strategy.strategyTacticals with hand-written process are not safe. However, the combinators below are guarantied to be sound.
Find a contradiction.
Keep goal unchanged.
Apply a description to a leaf goal. Same as t_descr "..." t_id.
Apply a description to each sub-goal
Split with p and not p.
Prove condition p and use-it as a forward hypothesis.
Case analysis: t_case p a b applies process a under hypothesis p and process b under hypothesis not p.
Complete analysis: applies each process under its guard, and proves that all guards are complete.
Apply second process to every goal generated by the first one.
val t_range :
Lang.F.term ->
int ->
int ->
upper:Tactical.process ->
lower:Tactical.process ->
range:Tactical.process ->
Tactical.processval t_replace :
?equal:string ->
src:Lang.F.term ->
tgt:Lang.F.term ->
Tactical.process ->
Tactical.processProve src=tgt then replace src by tgt.