donesolves trivial goals (adapted from SSReflect).edonesolves trivial goals witheassumptionordone.by tacis a shorthand fortac; done.eby tacis a shorthand fortac; edone.vautotries to solve the goal by up to two nested econstructor calls.basic_solversolves simple goals containing relational operators.
simplsis shorthand forsimpl in *; try done.insis shorthand forintros; simpls.clarifysimplifies the goal by simple injections/rewrites.clarsimpis similar, but also does a few further rewrites.clarassocdoes further rewrites with associativity lemmas.descdestructs conjunctions and existentials in hypotheses.desalso destructs disjunctions.desfalso performs case splits on conditionals/matches.des_eqreflsimplifies weird-looking dependent matches generated byProgram.
clarify_notsimplifies negated hypotheses.in_simpsimplifiesIn x listassumptions.relssimplifies goals with relational operators.relsfalso does case splits.
tertium_non_datur X [as Pattern]does a case split onX \/ ~X.forward eapply H [with ...] as Namegenerates subgoals for all the premises ofH; the final subgoal names the conclusion ofHasName.exploit His similar toforward eapply H(adapted from CompCert, deprecated).
splitsrepeatedly appliessplitto conjunctions.hahn_frame/hahn_frame_l/hahn_frame_rtry to apply the frame rule on goals with relational operators.
hahn_rewrite Hrewrites with a relational inclusion/equivalence lemmaseq_rewrite Hrewrites with an equivalence lemma up to associativity ofseqsin_rewrite Hrewrites with an inclusion lemma up to associativity ofseqarewrite EQgenerates a subgoal to proveEQand seq/sin-rewrites withEQarewrite_false termis shorthand forarewrite (term ≡ ∅₂)arewrite_id termis shorthand forarewrite (term ⊆ ⦗fun _ => True⦘)case_union x ycase splits on relations of the form_ ⨾ (x ∪ y) ⨾ _