Recognizer for stmt-gin structures.
(stmt-ginp x) → *
Function:
(defun stmt-ginp (x) (declare (xargs :guard t)) (let ((__function__ 'stmt-ginp)) (declare (ignorable __function__)) (and (mbe :logic (and (alistp x) (equal (strip-cars x) '(context var-term-alist typed-formals inscope loop-flag affect fn fn-guard compst-var fenv-var limit-var prec-fns prec-tags prec-objs thm-index names-to-avoid proofs))) :exec (fty::alist-with-carsp x '(context var-term-alist typed-formals inscope loop-flag affect fn fn-guard compst-var fenv-var limit-var prec-fns prec-tags prec-objs thm-index names-to-avoid proofs))) (b* ((context (cdr (std::da-nth 0 x))) (var-term-alist (cdr (std::da-nth 1 x))) (typed-formals (cdr (std::da-nth 2 x))) (inscope (cdr (std::da-nth 3 x))) (loop-flag (cdr (std::da-nth 4 x))) (affect (cdr (std::da-nth 5 x))) (fn (cdr (std::da-nth 6 x))) (fn-guard (cdr (std::da-nth 7 x))) (compst-var (cdr (std::da-nth 8 x))) (fenv-var (cdr (std::da-nth 9 x))) (limit-var (cdr (std::da-nth 10 x))) (prec-fns (cdr (std::da-nth 11 x))) (prec-tags (cdr (std::da-nth 12 x))) (prec-objs (cdr (std::da-nth 13 x))) (thm-index (cdr (std::da-nth 14 x))) (names-to-avoid (cdr (std::da-nth 15 x))) (proofs (cdr (std::da-nth 16 x)))) (and (atc-contextp context) (symbol-pseudoterm-alistp var-term-alist) (atc-symbol-varinfo-alistp typed-formals) (atc-symbol-varinfo-alist-listp inscope) (booleanp loop-flag) (symbol-listp affect) (symbolp fn) (symbolp fn-guard) (symbolp compst-var) (symbolp fenv-var) (symbolp limit-var) (atc-symbol-fninfo-alistp prec-fns) (atc-string-taginfo-alistp prec-tags) (atc-string-objinfo-alistp prec-objs) (posp thm-index) (symbol-listp names-to-avoid) (booleanp proofs))))))
Theorem:
(defthm consp-when-stmt-ginp (implies (stmt-ginp x) (consp x)) :rule-classes :compound-recognizer)