چرا مسئله‌ها سخت‌اند

ترتیبِ تاربندی‌شدهٔ دشواری

ویرایش بازنگری‌شده

همچنین به English · ویرایش کوتاه: فارسی · English

اغلب چنان از دشواری سخن می‌گوییم که گویی درون مسئله ذخیره شده است. حدسی دشوار است، چشم‌اندازی ناهموار است و سامانه‌ای پیچیده است. بااین‌حال همان محاسبه با حافظهٔ نوشتنی عادی است، اما برای ماشین متناهی ثابتی که باید ورودی نامحدودی را نگه دارد ناممکن می‌شود. همان حالت با یک حسگر بازیافتنی و با حسگری دیگر تمایزناپذیر است. همان هدف با یک عملگر دسترس‌پذیر است و در بست مجموعه‌ای دیگر از حرکت‌ها وجود ندارد.

در این مقایسه‌ها خود موضوع تغییر نکرده است؛ نحوهٔ مواجهه با آن تغییر کرده است.

این سخن دشواری را خیالی نمی‌کند. در قفل‌شده با توصیفی بهتر باز نمی‌شود. حدس نادرست برای اثباتگری ضعیف درست نمی‌شود. نویز می‌تواند تمایزها را تار کند و گاهی دقیقاً از میان ببرد، خواه مشاهده‌گر علتش را بفهمد یا نه. مسیری موجود ممکن است همچنان از حالتی ممنوع بگذرد. موضع این کتاب هم‌زمان رابطه‌ای و واقع‌گرایانه است: دشواری به رابطه‌ای مشخص وابسته است و حقیقت آن رابطه را عامل انتخاب نمی‌کند.

این رابطه سه مرز عملیاتی دارد که هر یک نسبت به نمونه، محیط و ردهٔ عدم‌قطعیت مدلِ اعلام‌شده سنجیده می‌شوند. مرز اطلاعات تعیین می‌کند کدام تفاوت‌ها می‌توانند وارد بازنمایی شوند. مرز کنش تعیین می‌کند به کدام حالت‌ها می‌توان رسید. مرز منابع تعیین می‌کند کدام عملکرد دست‌یافتنی را می‌توان با زمان، حافظه، ارتباط، دقت یا انرژی موجود محقق کرد. زبان نیز اهمیت دارد، اما نه همچون جوهری چهارم و رازآلود. واژگان از ابتدا تعیین می‌کند کدام مسئله‌ها و تمایزها صورت‌بندی شده‌اند.

پس شیء سازمان‌دهنده نه مقیاسی جهان‌شمول، بلکه ترتیبی تاربندی‌شده است. برای هر بافت مقایسه، همهٔ زیرمجموعه‌های فضای عملکرد آن ترتیبی پیرامونی می‌سازند، حال آنکه رویارویی‌های واقعی فقط زیرترتیبی جزئی را محقق می‌کنند. نگاشت‌های عملکرد، ترتیب‌های پیرامونی را با پیش‌تصویر بازنمایه‌گذاری می‌کنند و مقایسه‌های ناهمگونِ رویارویی‌های داده‌شده را ممکن می‌سازند. رده‌های تحقق‌یافتهٔ دشواری را فقط هنگامی بازنمایه‌گذاری می‌کنند که قضیه‌ای دربارهٔ بسته‌بودن بگوید خود پیش‌تصویرها تحقق یافته‌اند.

ادعای محوری مشروط است:

مسئله فقط نسبت به شرطی برای موفقیت، خانواده‌ای مجاز از نمونه‌ها و محیط‌ها و مرزهای اعلام‌شده بر اطلاعات، کنش و منابع دشوار است. درون یک بافت مقایسه، ناحیهٔ دست‌یافتنی کوچک‌تر یعنی دشواری بیشتر. در میان بافت‌ها، مقایسهٔ رویارویی‌های داده‌شده به ترجمه‌ای مشخص برای عملکرد نیاز دارد. بازنمایه‌گذاری رده‌های تحقق‌یافتهٔ دشواری افزون بر آن به بسته‌بودن زیر پیش‌تصویر نیاز دارد؛ انتخاب رویارویی‌های منتقل‌شده داده‌هایی قوی‌تر می‌خواهد.

این صورت‌بندی به دشواری درجه می‌دهد، بی‌آنکه وانمود کند همهٔ گونه‌های مقاومت واحدی مشترک دارند. همچنین تغییرهایی را جدا می‌کند که زبان روزمره اغلب یکی می‌گیرد. تغییر مختصات می‌تواند ساختار را آشکار و رفتار را حفظ کند. انتزاعی که برای بازگرداندن راه‌حلی اجراشدنی به کار می‌رود می‌تواند ساختار را دور بریزد و ازاین‌رو مسیر بازگشت بدهکار است. حسگر تازه مرز اطلاعات را تغییر می‌دهد. عملگر تازه مرز کنش را تغییر می‌دهد. کشف الگوریتمی سریع‌تر، عملکرد محقق‌شده یا شناخت ما از مرز را بهبود می‌دهد؛ تغییر کلاس برنامه‌های مجاز خود مرز را عوض می‌کند. این‌ها رویدادهایی متفاوت‌اند، حتی اگر هر یک آسان‌ترکردن مسئله نامیده شود. ترجمه‌های متفاوتی میان بافت‌ها نیز پشتیبانی می‌کنند: برخی دقیق‌اند، برخی فقط ادعاهای عملکرد پیرامونی را بازنمایه‌گذاری می‌کنند و برخی هیچ انتقال موجهی برای مسئله‌های واقعی فراهم نمی‌کنند.

استدلال از بازنمایی و بازخورد آغاز می‌شود، از مقاومت و خطا می‌گذرد و به دسترس‌پذیری، انتزاع و پیچیدگی می‌رسد. ریاضیات به‌صورت موضعی به کار می‌رود. هیچ نوع‌دادهٔ جهان‌شمولی برای همهٔ مسئله‌ها پیشنهاد نمی‌شود و هیچ قضیهٔ بررسی‌شده با ماشین جای استدلال فلسفی‌ای را نمی‌گیرد که معنای آن قضیه را روشن می‌کند.

فصل ۱بازنمایی حالتی در یک حلقهٔ بازخورد است

توصیف و حالت عملیاتی

بازنمایی می‌تواند جمله، نمودار، دستگاه مختصات، توزیع احتمال، بردار ویژگی آموخته‌شده، کتابخانهٔ اثبات یا نشانه‌ای فیزیکی باشد. تفاوت این اشیا بیش از آن است که یک نحو واحد برای همهٔ آن‌ها سودمند باشد. آنچه اینجا اهمیت دارد نقشی محدودتر است: بازنمایی عملیاتی هر حالتی است که پیامدهای برگزیدهٔ تعامل گذشته را به استنتاج یا کنش بعدی منتقل کند.

فرض کنید \(X\) مجهولی برون‌زا و مرتبط با مسئله و \(Y_1,Y_2,\ldots\) مشاهده‌ها باشند. قضیهٔ اطلاعاتی زیر حالت هدف آینده‌ای را پوشش نمی‌دهد که خود کنش‌ها به‌طور علّی تغییرش می‌دهند؛ چنین مسئله‌ای به صورت‌بندی اطلاعات علّی یا جهت‌دار نیاز دارد. هر سکهٔ تصادفی مورد استفادهٔ برآوردگر یا سیاست حسگری را در نوار تصادفی \(W\) بگذارید که مستقل از زوج \((X,Z_0)\) فرض می‌شود، و بنویسید \(H_0=(Z_0,W)\). در دور \(t\)، بازنمایی نگه‌داری‌شده را چنین می‌نویسیم:

\[ Z_t=q_t(H_0,Y_1,\ldots,Y_t). \]

نگاشت \(q_t\) علّی است. این نگاشت می‌تواند حالت یک مشاهده‌گر، یک توزیع پسین، گزارشی فشرده یا دفترچه‌ای بیرونی را توصیف کند که در حالت گسترش‌یافتهٔ عامل گنجانده شده است. یک برآورد چنین است:

\[ \widehat X_t=g_t(Z_t), \]

و کنش را می‌توان به‌صورت \(A_t=\pi_t(H_0,Y_{<t})\) برگزید. نوار تصادفی در آغاز دربارهٔ مجهول اطلاعاتی نمی‌دهد، اما باید در تاریخچه باقی بماند. هنگامی که این نوار کنش‌های حسگری را انتخاب می‌کند، حذف آن از عبارت اطلاعات متقابل شرطی می‌تواند عبارت را نادرست کند.

این صورت‌بندی کیفیت بازنمایی را از حجم نثری که آن را توصیف می‌کند جدا می‌سازد. حالتی بزرگ می‌تواند تمایزهای نامربوط را حفظ کند. آماره‌ای کوچک و بسنده می‌تواند دقیقاً تمایزهای لازم برای یک تابع زیان را نگه دارد. پس فشرده‌سازی به مسئله وابسته است: یک خارج‌قسمت می‌تواند برای تصمیمی دقیق و برای تصمیمی دیگر ویرانگر باشد.

پیش از ورود احتمال، از همین‌جا پیش‌ترتیبی پدیدار است. آزمایش قطعی \(o_f\) هنگامی \(o_c\) را پالایش می‌کند که برای نگاشت پس‌پردازش \(k\)، رابطهٔ \(o_c=k\circ o_f\) برقرار باشد. برابری گزارش‌های ریز آنگاه برابری گزارش‌های زمخت را اجبار می‌کند، پس ردهٔ سازگاری گزارش ریز کوچک‌تر است. در نتیجه، هر کنشی که زیر گزارش زمخت در برابر همهٔ حالت‌های سازگار مقاوم است، زیر گزارش ریز نیز مقاوم می‌ماند. عامل‌گیری متقابل رده‌های سازگاری و همهٔ مجموعه‌های کنش مقاوم را حفظ می‌کند. یک خارج‌قسمت دوحالتی می‌تواند با یکی‌کردن حالت‌هایی که کنش‌های متفاوت می‌خواهند، این شمول را اکید سازد. بازبرچسب‌گذاری‌های متمایز می‌توانند جایگاه یکسانی داشته باشند، پس پادتقارنی مستلزم یکی‌گرفتن گزارش‌هایی است که هر یک با پس‌پردازش از دیگری به دست می‌آید. این پیش‌ترتیب قطعی پالایش، نامساوی پردازش دادهٔ شانون نیست که در ادامه به کار می‌رود.

بازخورد نمی‌تواند اطلاعات بیافریند

چون \(Z_t\) از حالت آغازین و گزارش تعامل ساخته می‌شود، نامساوی پردازش داده نتیجه می‌دهد:

\[ I(X;Z_t) \le I(X;H_0,Y_{1:t}) =I(X;H_0)+\sum_{k=1}^{t} I(X;Y_k\mid H_0,Y_{<k}) =I(X;Z_0)+\sum_{k=1}^{t} I(X;Y_k\mid H_0,Y_{<k}). \]

تساوی، قاعدهٔ زنجیره‌ای است. در آزمایشی سازگارشونده، توزیع \(Y_k\) می‌تواند به کنش‌های پیشین وابسته باشد. بنابراین جمله‌های اطلاعات شرطی باید تحت سیاست واقعی و با نوار تصادفی آن در مجموعهٔ شرط‌گذاری محاسبه شوند. صرفاً نویزی‌خواندن یک حسگر برای تعیین آن‌ها کافی نیست. کنش‌هایی که از تاریخچهٔ ثبت‌شده تولید می‌شوند خودبه‌خود دربارهٔ \(X\) اطلاعات نمی‌آفرینند.

برای سیاستی ثابت، فرض کنید هر دور حداکثر \(C\) واحد اطلاعات مرتبط با مسئله فراهم کند. برای به‌دست‌آوردن کران پایین برای یک ردهٔ کامل آزمایش، همان کران باید به‌طور یکنواخت برای هر سیاست سازگارشوندهٔ مجاز برقرار باشد. فرض کنید \(I_0\) و \(C\) متناهی‌اند و همهٔ اطلاعات را با یک مبنای لگاریتم بسنجید. آنگاه:

\[ I(X;Z_t)\le I_0+tC, \qquad I_0=I(X;Z_0). \]

این یک کران بالاست، نه قضیه‌ای دربارهٔ همگرایی. قاعدهٔ به‌روزرسانی نامناسب ممکن است اطلاعات را از دست بدهد و بدتر عمل کند. کران فقط می‌گوید هیچ بازسازی‌ای نمی‌تواند بیش از اطلاعاتی که وارد تاریخچهٔ علّی آن شده است به دست آورد.

برای پیوند دادن اطلاعات به دقت، اعوجاج \(d(x,\hat x)\) را ثابت می‌کنیم و تابع نرخ اعوجاج را چنین تعریف می‌کنیم:

\[ R_X(D)= \inf_{P_{\widehat X\mid X}:\,\mathbb E d(X,\widehat X)\le D} I(X;\widehat X). \]

برای تفریق و تقسیم با مقادیر حقیقی در ادامه، همچنین فرض کنید \(R_X(D)\) متناهی است.

اگر \(\widehat X_t\) به اعوجاج مورد انتظار حداکثر \(D\) برسد، اطلاعاتش دربارهٔ \(X\) دست‌کم \(R_X(D)\) است. چون \(\widehat X_t\) از \(Z_t\) محاسبه می‌شود، کاربرد دیگری از پردازش داده نتیجه می‌دهد:

\[ R_X(D)\le I(X;\widehat X_t)\le I(X;Z_t). \]

پس برای \(C>0\)، هر برآوردگری که تحت قانون منبع اعلام‌شده این معیار اعوجاج مورد انتظار را برآورده کند از کران زیر پیروی می‌کند:

\[ t\ge \left\lceil \frac{[R_X(D)-I_0]_+}{C} \right\rceil . \]

اگر بازنمایی آغازین از پیش اطلاعات کافی داشته باشد، این کران پایین صفر است. اگر \(C=0\) و هم‌زمان \(R_X(D)>I_0\) باشد، دقت هدف از راه آن سیاست و کانال بازخورد اعلام‌شده دست‌نیافتنی است. اگر کران \(C\) روی ردهٔ سیاست‌های مجاز یکنواخت باشد، این ناممکنی سراسر رده را دربر می‌گیرد. سقف عددی آرایه‌ای فلسفی نیست: مشاهده‌ها در دورهای کامل از راه می‌رسند.

این نامساوی آگاهانه مشروط است. کاربردی دفاع‌پذیر باید توزیع منبع، اعوجاج، اطلاعات آغازین، ردهٔ آزمایش و کران هر دور را توجیه کند. بدون این انتخاب‌ها، \(C\) فقط یک حرف و \(R_X(D)\) فقط یک نام است.

بازسازی نرده‌ای گاوسی

ساده‌ترین مثال دقیق، وابستگی به نویز را آشکار می‌کند. فرض کنید یک حالت نرده‌ای ثابت توزیع پیشین زیر را داشته باشد:

\[ X\sim\mathcal N(m_0,P_0), \]

و مشاهده‌های مستقل چنین باشند:

\[ Y_k=X+V_k, \qquad V_k\sim\mathcal N(0,R), \qquad P_0>0, R>0. \]

هم‌تایی گاوسی دقت را جمع می‌کند. پس از \(t\) مشاهده، واریانس پسین برابر است با:

\[ P_t=\left(P_0^{-1}+tR^{-1}\right)^{-1}. \]

برای واریانس هدف مثبت \(D\)، شرط \(P_t\le D\) مستلزم این است که:

\[ t\ge R\left(D^{-1}-P_0^{-1}\right). \]

کران پایین صحیح، سقف بخش مثبت است. افزایش واریانس نویز اندازه‌گیری \(R\)، شمار مشاهده‌های لازم برای همان کاهش عدم‌قطعیت را افزایش می‌دهد. این هستهٔ روشن قیاس کالمن است: سرعت بازسازی به دقتی محدود می‌شود که از راه بازخورد وارد می‌شود.

مشاهده‌پذیری هندسه‌ای موضعی است؛ آشکارپذیری پویایی است

فرمول نرده‌ای قضیه‌ای دربارهٔ فیلتر کالمن پویا نیست. برای یک سامانهٔ خطی نامتغیر با زمان (LTI) با \(\dot x=Ax,\ y=Cx\)، مشاهده‌پذیری با رتبهٔ پشتهٔ عمودی زیر آزموده می‌شود:

\[ \mathcal O_L= \begin{bmatrix} C\\ CA\\ \vdots\\ CA^{n-1} \end{bmatrix}. \]

یک سامانهٔ غیرخطی هموار ماتریس جهان‌شمولی با آن صورت متناهی ندارد. برای \(\dot x=f(x,u),\ y=h(x)\)، به‌ازای هر ورودی ثابت و مجاز \(f_{\bar u}(x)=f(x,\bar u)\) را تعریف کنید. فرض کنید \(\mathcal G\) کوچک‌ترین فضای برداری حقیقی باشد که مؤلفه‌های خروجی را در بر می‌گیرد و زیر مشتق‌گیری لی نسبت به هر \(f_{\bar u}\) بسته است. هم‌توزیع مشاهده‌پذیری آن چنین است:

\[ \mathcal O(x)= \operatorname{span}\{d\phi(x):\phi\in\mathcal G\} \subseteq T_x^*M. \]

برای سامانه‌ای خودمختار، این هم‌توزیع گسترهٔ \(d(L_f^k h_j)(x)\) است. ماتریسی مختصاتی که از شمار متناهی این هم‌بردارها ساخته شود می‌تواند از نظر محاسباتی سودمند باشد، اما هیچ برش جهان‌شمولی در \(n-1\) وجود ندارد. سامانه‌های کنترل‌شده ممکن است به مشتق‌های لی آمیخته و تکرارشده در امتداد همهٔ میدان‌های برداری مجاز سامانه نیاز داشته باشند، نه فقط مشتق‌های تکراری در امتداد رانش.

شرط هرمان و کرنر

\[ \dim\mathcal O(x_0)=\dim M \]

برای مشاهده‌پذیری ضعیف موضعی در \(x_0\) کافی است. این شرط روی آزمایش‌های اعلام‌شده با ورودی مشترک سور می‌زند؛ نشان نمی‌دهد که یک ورودی ثابت اطلاعات‌بخش است. این استلزام موضعی است و عکس بی‌قیدوشرطی ندارد. برای نمونه، \(\dot x=0,\ y=x^3\) مشاهده‌پذیر است، هرچند \(dh(0)=0\). رتبهٔ کامل در همسایگی هر نقطه نیز لزوماً مشاهده‌پذیری سراسری را نتیجه نمی‌دهد.

اگر هم‌توزیع کامل در همسایگی‌ای رتبهٔ ثابت \(r<n\) داشته باشد، نابودگر آن

\[ \mathcal N_x=\mathcal O(x)^\circ =\{v\in T_xM:\alpha(v)=0\text{ for every }\alpha\in\mathcal O(x)\} \]

یک توزیع هموار \((n-r)\) بعدی است. این توزیع زیر کروشه بسته است: کروشهٔ میدان‌های برداری‌ای که هر \(\phi\in\mathcal G\) را نابود می‌کنند نیز همهٔ این تابع‌ها را نابود می‌کند. بنابراین قضیهٔ فروبنیوس آن را به برگ‌های همبند موضعی انتگرال می‌کند که روی هر یک از آن‌ها تمام تابع‌های \(\mathcal G\) ثابت‌اند. تحت فرض‌های رتبهٔ ثابت هرمان و کرنر، نقاطی که درون چنین برگی به هم وصل‌اند، با کنترل‌های مجاز به‌طور قوی تمایزناپذیرند. فروبنیوس به‌تنهایی یک برگ موضعی را به ردهٔ تمایزناپذیری سراسری تبدیل نمی‌کند. این برگ‌ها عموماً خمیده‌اند، نه زیرفضاهای خطی مشاهده‌ناپذیر. کمبود رتبه در یک نقطه فقط هسته‌ای ناصفر برای آزمون دیفرانسیلی به دست می‌دهد؛ حالت‌های تمایزناپذیر نزدیک، یک برگ‌بندی یا خارج‌قسمتی سراسری را ثابت نمی‌کند.

مشاهده‌پذیری می‌پرسد آیا خروجی حالت‌ها را از هم جدا می‌کند. آشکارپذیری می‌پرسد بر سر تمایزهایی که خروجی جدا نمی‌کند چه می‌آید. در یکی از صورت‌بندی‌های افزایشی، دو مسیر کامل رو به جلو با ورودی مجاز یکسان و تاریخچهٔ خروجی یکسان باید شرط زیر را برآورده کنند:

\[ d(x_a(t),x_b(t))\longrightarrow0. \]

در یک تجزیهٔ منظم مشاهده‌پذیری، این شرط همان همگرایی مجانبی مسیرهای پنهان در امتداد هر برگ تمایزناپذیری است. صرف کرانداری کافی نیست: دو مسیر پنهان کراندار ممکن است همچنان از هم جدا بمانند. شعاع باقیماندهٔ مثبت و ثابت، آشکارپذیری عملی است. برآورد یکنواخت

\[ \limsup_{t\to\infty}d(x_a(t),x_b(t)) \le\rho(\lVert\delta\rVert_\infty), \qquad \rho(0)=0, \]

کرانی برای آشکارپذیری مقاوم نسبت به ردهٔ اعلام‌شدهٔ اغتشاش است. هنگامی که سمت راست مثبت باشد، هیچ‌یک آشکارپذیری مجانبی دقیق نیست. آشکارپذیری یک مانع بازسازی حالت را برمی‌دارد؛ مشاهده‌گر نمی‌سازد و پایدارپذیری، اصل جداسازی غیرخطی یا ایمنی را ثابت نمی‌کند.

تمایزناپذیری به مسئله وابسته است

کران‌های اطلاعاتی به درجه مربوط‌اند. مرزی مکمل به ابهام دقیق مربوط است. رده‌ای از آزمایش‌های مجاز را ثابت کنید. دو حالت هنگامی هم‌ارز مشاهداتی‌اند که هر آزمایش در آن رده، قانون یکسانی بر تاریخچه‌های متناهی مشاهده تولید کند. هیچ محاسبه‌ای روی چنین تاریخچه‌ای نمی‌تواند آن حالت‌ها را از هم بازشناسد.

بااین‌حال بازیابی دقیق ممکن است لازم نباشد. اگر هر حالت \(x\) مجموعهٔ \(A^*(x)\) از کنش‌های پذیرفتنی داشته باشد، ردهٔ مشاهداتی \(E\) دقیقاً هنگامی انتخابی مقاوم ممکن می‌سازد که:

\[ \bigcap_{x\in E} A^*(x)\ne\varnothing. \]

بازنمایی مربوط فقط باید تمایزهایی را حفظ کند که مجموعه‌های کنش پذیرفتنی بر سر آن‌ها تعارض دارند. از همین رو باید اطلاعات را مرتبط با مسئله خواند. ممکن است بیت‌های فراوانی دربارهٔ مختصاتی نامربوط موجود باشد، اما یک تمایز حیاتی برای تصمیم همچنان غایب بماند.

ردهٔ آزمایش بخشی از مدعاست. هم‌ارزی تحت همهٔ سیاست‌های ریاضی وابسته به تاریخچه می‌تواند ظریف‌تر از هم‌ارزی تحت آزمایش‌هایی باشد که عاملی محدود قادر به اجرای آن‌هاست. فراموش‌کردن این سور، قضیه‌ای دقیق را به ادعایی دربارهٔ رابطی دیگر بدل می‌کند.

فصل ۲بازسازی مقاوم حاشیه‌ای دارد

همگرایی اسمی به معنای مقاومت نیست

یک مشاهده‌گر ممکن است درون مدل طراحی خود کاملاً همگرا شود و با تغییر کوچکی در سامانه، حسگر یا اغتشاش شکست بخورد. این صرفاً نوع دیگری از نویز نیست. نویز مشاهده‌ها را درون مدلی حفظ‌شده مختل می‌کند. عدم تطابق یعنی گذار حالت یا نگاشت خروجیِ مفروض نادرست است. خطا را فقط پس از اعلام رده و اندازهٔ آن می‌توان همچون اغتشاش مدل کرد.

سامانه‌ای غیرخطی و مشاهده‌گری از نوع لوئنبرگر را در نظر بگیرید که به‌طور شماتیک چنین نوشته می‌شوند:

\[ x_{t+1}=f_t(x_t,u_t)+w_t, \qquad y_t=h_t(x_t)+v_t, \]
\[ \widehat x_{t+1} =\widehat f_t(\widehat x_t,u_t) +K_t(\widehat x_t) \bigl(y_t-\widehat h_t(\widehat x_t)\bigr). \]

صورت نمایش‌داده‌شده نه مشاهده‌پذیری موضعی را تضمین می‌کند و نه همگرایی را. شرط رتبهٔ فصل ۱ به رابط خروجی سامانه مربوط است، نه به این مشاهده‌گر. آشکارپذیری می‌تواند بازیابی دقیق جهت‌های پنهان را غیرضروری کند، اما همگرایی برآورد برگزیده هنوز استدلالی جداگانه می‌خواهد. فرض کنید چنین تحلیلی برای خطای برآورد \(e_t\ge0\) نامساوی مقایسه‌ای نرده‌ای زیر را به دست دهد:

\[ e_{t+1}\le(q_0+\mu)e_t+\bar d. \]

در اینجا \(q_0\ge0\) ضریب انقباض اسمی گواهی‌شده است، \(\mu\ge0\) بخشی از عدم تطابق مدل را کران می‌زند که با خطای جاری مقیاس می‌شود و \(\bar d\ge0\) آثار جمع‌پذیر مانند اغتشاش، نویز حسگر پس از بهرهٔ مشاهده‌گر، سوگیری و خطای کران‌دار را محدود می‌کند. هیچ متریک جهان‌شمولی وجود ندارد که هر تفاوت مدل را به این \(\mu\) تبدیل کند. استخراج نامساوی مقایسه کار ویژهٔ همان سامانه است.

بگذارید \(q=q_0+\mu\). اگر \(0\le q<1\) باشد، تکرار نتیجه می‌دهد:

\[ e_t\le q^t e_0 +\bar d\sum_{k=0}^{t-1}q^k =q^t\left(e_0-\frac{\bar d}{1-q}\right) +\frac{\bar d}{1-q}. \]

لولهٔ نهایی گواهی‌شده شعاع زیر را دارد:

\[ r_\infty=\frac{\bar d}{1-q_0-\mu}. \]

اکنون دو اثر عدم تطابق از هم جدا شده‌اند. عدم تطابق ضربی حاشیهٔ انقباض اسمی را مصرف می‌کند. اغتشاش جمعی کران بالایی را بزرگ‌تر می‌کند که این استدلال مقایسه قادر به گواهی آن است. تحمل گواهی‌شده چنین است:

\[ \mu<1-q_0. \]

عبور از این مرز اثبات انقباض را نامعتبر می‌کند. این امر واگرایی مشاهده‌گر واقعی را ثابت نمی‌کند؛ ممکن است یک گواهی کافی شکست بخورد، اما سامانه به دلایلی دیگر پایدار بماند.

این رابطهٔ بازگشتی هیچ کران پایین متناظری فراهم نمی‌کند. به‌ویژه نشان نمی‌دهد خطاهای کمتر از \(r_\infty\) ناممکن‌اند: خنثی‌شدن آثار، اغتشاش تحقق‌یافتهٔ کوچک‌تر یا تحلیلی تیزتر ممکن است چنین خطاهایی به دست دهند. کف واقعی دقت به استدلالی جداگانه برای کران پایین در بدترین حالت یا حالت کمینه‌بیشینه نیاز دارد.

همین نامساوی شرطی برای دقت نیز می‌دهد. برای گواهی‌کردن \(\limsup_{t\to\infty}e_t\le D\) با \(D>0\)، کافی است که:

\[ \bar d\le D(1-q_0-\mu). \]

پس انقباض اسمی سریع‌تر، تحمل عدم تطابق و دقت نهایی حاشیه‌ای مشترک دارند. آن‌ها را نمی‌توان مستقل از \(q_0\)، \(\mu\) و \(\bar d\) خواند. اگر \(r_\infty<D<e_0\) و \(0<q<1\) باشند، کران گذرا زمانی به \(D\) می‌رسد که زمان با مقدار طبیعی شرط زیر را برآورده کند:

\[ t\ge \left\lceil \frac{\log\bigl((D-r_\infty)/(e_0-r_\infty)\bigr)}{\log q} \right\rceil . \]

اگر \(D\ge e_0\) باشد، زمان صفر از پیش کران را برآورده می‌کند. فرمول یک بده‌بستان آشنا را آشکار می‌سازد. افزایش بهرهٔ مشاهده‌گر می‌تواند ضریب انقباض اسمی را کاهش دهد، اما هم‌زمان نویز اندازه‌گیری و در نتیجه \(\bar d\) را تقویت کند. سرعت در مدل بی‌نویز الزاماً تضمین گواهی‌شدهٔ دقت مقاوم را بهتر نمی‌کند. فرض متناهی‌بودن \(\bar d\)، فرضی قطعی دربارهٔ اغتشاش کران‌دار است. نویز گاوسی بی‌کران است و به صورت‌بندی بر پایهٔ گشتاور یا احتمال بالا نیاز دارد.

تغییر مدل‌ها و جابه‌جایی میان رژیم‌ها

خانوادهٔ سامانه‌های \(\{f_\theta,h_\theta:\theta\in\Theta\}\) فقط هنگامی مدعایی یکنواخت دربارهٔ مقاومت می‌پذیرد که یک متریک خطای مشترک یا تابع لیاپانوف مشترک، نامساوی مقایسه را در سراسر خانوادهٔ اعلام‌شده به دست دهد. اگر همان کران‌های \(q<1\) و \(\bar d\) در هر گام، از جمله هر تعویض مجاز، برقرار باشند، لولهٔ خطا در برابر تغییر دلخواه درون آن خانواده دوام می‌آورد. ثابت‌های برابری که جداگانه در متریک‌های وابسته به هر رژیم اثبات شده‌اند چنین مدعایی را نتیجه نمی‌دهند. قضیهٔ تعویض ممکن است در عوض به دادهٔ لیاپانوف مشترک، زمان ماند یا کران‌های بازنشانی نیاز داشته باشد.

تغییر ناگهانی می‌تواند هم‌توزیع مشاهده‌پذیری، رتبهٔ آن یا پایداری پویایی در امتداد برگ‌های پنهانش را عوض کند. هیچ انتخابی برای بهره، تمایزی را که از خروجی ناپدید شده است ترمیم نمی‌کند و آشکارپذیری مدل قدیم خودبه‌خود منتقل نمی‌شود. بانک مشاهده‌گر می‌تواند ردهٔ فرضیه‌ها را گسترش دهد و باقیمانده‌های مدل‌ها را مقایسه کند، اما مفروضات حافظه، محاسبه و شناسایی را تغییر می‌دهد. مقاومت رایگان نیست.

پس عبارت حداکثر درجهٔ واگرایی فقط پس از انتخاب مجموعه و نرم عدم تطابق معنا دارد. درون مجموعه‌ای گواهی‌شده، نامساوی مقایسه یک لولهٔ بیشینه برای خطا می‌دهد. بیرون آن، سکوت نتیجهٔ صادقانه است. برون‌یابی همان شعاع فراتر از فرض‌هایش، تغییر مدل را در لباس حساب پنهان می‌کند.

سازگارسازی، آشکارسازی و جداسازی

تحمل خطا به ادعاهایی متفاوت تقسیم می‌شود. سازگارسازی یعنی برآوردگر یا کنترل‌کننده تا زمانی که خطا در رده‌ای مجاز باشد، تضمین دقت یا ایمنی را حفظ کند. اگر آثار خطا در \(\bar d\) گنجانده شوند، لولهٔ خطای بالا نتیجه‌ای از نوع سازگارسازی است.

آشکارسازی می‌پرسد آیا می‌توان خطا را از عدم‌قطعیت عادی بازشناخت. باقیمانده را چنین تعریف کنید:

\[ r_t=y_t-\widehat h_t(\widehat x_t). \]

فرض کنید هر باقیماندهٔ سالم از \(\lVert r_t^h\rVert\le\rho\) پیروی کند و باقیماندهٔ معیوب صورت جمعی \(r_t^f=r_t^h+f\) داشته باشد. هرگاه \(\lVert r_t\rVert>\eta\) است هشدار اعلام کنید. آستانهٔ \(\eta\ge\rho\) در آن مدل قطعی از هشدار کاذب جلوگیری می‌کند. نامساوی مثلثی معکوس شرط کافی بدترین‌حالت زیر را می‌دهد:

\[ \lVert f\rVert-\rho>\eta. \]

در کوچک‌ترین آستانه‌ای که تنها از همین کران شعاع گواهی می‌شود، یعنی \(\eta=\rho\)، شرط آشنا چنین است:

\[ \lVert f\rVert>2\rho. \]

این ضریب دو، جدایی بدترین‌حالت میان لوله‌های عدم‌قطعیت است. اگر باقیمانده‌های سالم مجموعه‌ای کوچک‌تر یا نامتقارن را اشغال کنند، این شرط می‌تواند محافظه‌کارانه باشد. همچنین تا وقتی مدلی احتمالی افزوده نشود، تضمینی احتمالی دربارهٔ هشدار کاذب نیست.

جداسازی می‌پرسد کدام خطا رخ داده است. این کار مستلزم جدایی مجموعه‌های باقیماندهٔ خطاهای نامزد از یکدیگر است، نه فقط از مجموعهٔ سالم. ممکن است خطایی آشکارپذیر باشد و همچنان از خطایی دیگر تمایز داده نشود. اگر نامزد \(i\) باقیمانده‌هایی در گوی بستهٔ شعاع \(\rho\) پیرامون نشانهٔ \(f_i\) تولید کند، آنگاه \(\lVert f_i-f_j\rVert>2\rho\) دو گوی نامزد را مجزا می‌سازد. این حاشیه‌ای کافی و قطعی برای جداسازی است، نه مدلی جامع برای تشخیص. همان هندسه‌ای که بر بازنمایی مرتبط با مسئله حاکم بود اینجا بازمی‌گردد: تشخیص فقط هنگامی ممکن است که رابط مشاهده تمایزهایی را حفظ کند که تشخیص باید میان آن‌ها فرق بگذارد.

پس بازسازی مقاوم مرزی اطلاعاتی و مرزی پویا دارد. مشاهده‌پذیری تعیین می‌کند کدام تمایزها می‌توانند وارد خروجی شوند و نرخ اطلاعات سرعت انقباض عدم‌قطعیت بازیافتنی را محدود می‌کند. آشکارپذیری می‌پرسد آیا ابهام باقی‌مانده فروکش می‌کند؛ حاشیهٔ پایداری مقدار عدم تطابق و اغتشاش قابل‌تحمل برای آن انقباض را محدود می‌سازد. اطمینان گزارش‌شده از درون مدل حفظ‌شده جای هیچ‌یک از این دو مرز را نمی‌گیرد.

فصل ۳دانستن راه نمی‌سازد

دسترس‌پذیری را کنش‌ها پدید می‌آورند

فرض کنید \(X\) فضای حالت باشد و هر کنش اولیهٔ \(u\in U\) گذار \(F_u:X\to X\) را القا کند. حالت‌های دسترس‌پذیر از \(x\) عبارت‌اند از:

\[ \operatorname{Reach}_U(x) =\{F_{u_n}\circ\cdots\circ F_{u_1}(x):n\ge0,\ u_i\in U\}. \]

ترکیب تهی خود \(x\) را دربر می‌گیرد. این مجموعه به مرز کنش وابسته است، نه به روشنی بازنمایی عامل از آن. نقشه‌ای کامل می‌تواند دسترس‌پذیری هدف را تعیین و جست‌وجو را کوتاه کند، اما نقطهٔ پایانی تازه‌ای به بست نمی‌افزاید.

کنش مشتق‌شدهٔ \(g\) نیز الزاماً دسترس‌پذیری را گسترش نمی‌دهد. اگر:

\[ g(x)\in\operatorname{Reach}_U(x) \quad\text{for every }x, \]

آنگاه درنظرگرفتن \(g\) همچون یک گام اولیه، طول برنامه را تغییر می‌دهد اما مجموعهٔ دسترس‌پذیر را نه. این شرط از داشتن یک کلان‌دستور متناهی و یکنواخت برای \(g\) ضعیف‌تر است: مسیر شاهد ممکن است به \(x\) وابسته باشد، کران طول مشترکی نداشته باشد و حتی محاسبه‌ناپذیر باشد. عملگری واقعاً تازه می‌تواند دسترس‌پذیری را گسترش دهد، اما در آن صورت مرز کنش عوض شده است.

این امر مانع معرفتی را از مانع عملی جدا می‌کند. حالتی می‌تواند کاملاً شناخته‌شده و دسترس‌ناپذیر باشد. حالتی می‌تواند دسترس‌پذیر باشد، اما عامل اطلاعات کافی برای انتخاب مسیر نداشته باشد. دو شکست می‌توانند هم‌زمان رخ دهند، ولی هیچ‌یک دیگری را توضیح نمی‌دهد.

عمق مانع زمان جست‌وجو نیست

دسترس‌پذیری می‌گوید مسیری وجود دارد، نه اینکه هر مسیر باید از چه چیزی بگذرد. فرض کنید \(J:X\to\mathbb R\) تابع هدف باشد و مقادیر بزرگ‌تر ترجیح داده شوند، و \(\gamma\) روی مسیرهای متناهی مجاز از \(x\) تا مجموعهٔ هدف \(G\) تغییر کند. عمق مسیر را نسبت به مقدار آغازینش چنین تعریف کنید:

\[ \operatorname{depth}_J(\gamma) =\max_i [J(x)-J(\gamma_i)]_+, \]

و مانع را چنین تعریف کنید:

\[ B_J(x,G) =\inf_{\gamma:x\leadsto G}\operatorname{depth}_J(\gamma), \]

که در نبود مسیر مقدار \(+\infty\) دارد.

مانع صفر یعنی مسیرها می‌توانند با هر دقت دلخواه از افت زیر هدف آغازین بپرهیزند؛ با وجود مسیر یکنواخت شاهد، مقدار دقیقاً صفر است. مانع متناهی و مثبت یعنی هر مسیر افت می‌کند. مانع بی‌نهایت یعنی هیچ مسیری وجود ندارد. این‌ها گزاره‌هایی دربارهٔ رابطهٔ مجاورت و هدف اعلام‌شده‌اند.

عمق مانع آماره‌ای برای گلوگاه است، نه هزینه‌ای عمومی. نه گام‌ها را می‌شمارد، نه انرژی را انتگرال می‌گیرد، نه احتمال گریز می‌دهد و نه محاسبهٔ لازم برای یافتن مسیر را کران می‌زند. مسیری می‌تواند عمق صفر و طولی نجومی داشته باشد. مسیری کوتاه می‌تواند افتی عمیق داشته باشد. قاعدهٔ جست‌وجوی محلی تصادفی ممکن است مسیر کم‌عمقی را نیابد. جست‌وجو، پیمایش و عمق گلوگاه به مدل‌هایی جداگانه نیاز دارند.

بازنمایی مسیر می‌تواند این تمایز را پنهان کند. یالی انتزاعی ممکن است نمایندهٔ مسیری عینی و طولانی باشد. اگر آن مسیر وجود داشته باشد، یال دسترس‌پذیری را حفظ می‌کند؛ اما فقط زمانی عمق مانع را حفظ می‌کند که مسیر کران امتیاز مناسبی داشته باشد. انتزاع در همین نقطه بدهکار می‌شود.

فصل ۴رفتار بر نحوهٔ نمایش آن مقدم است

سامانه‌ها به‌مثابه مسیرهای مجاز

معادلهٔ دیفرانسیل، ماشین خودکار، تحقق فضای حالت و جداسازی ورودی و خروجی، همگی نحوه‌هایی برای نمایش یک سامانه‌اند. دیدگاه رفتاری در عوض از دامنهٔ زمانی \(T\)، فضای سیگنال اعلام‌شدهٔ \(W\) و مجموعه‌ای از مسیرهای مجاز آغاز می‌کند

\[ \Sigma=(T,W,\mathcal B), \qquad \mathcal B\subseteq W^T. \]

معادله‌ها تا آنجا اهمیت دارند که \(\mathcal B\) را مشخص کنند. مدل‌های درونی متفاوت می‌توانند رفتار یکسانی را در مرز سیگنال اعلام‌شده نمایش دهند، حتی وقتی یکی اثبات یا الگوریتم سودمندی را آشکار می‌کند که دیگری پنهان می‌سازد. این استقلال از بازنمایی است، نه استقلال از مدل: متغیرها، مرز و مسیرهای مجاز برگزیده همچنان ممکن است فرایند واقعی را نادرست توصیف کنند.

وقتی دو مؤلفه جهان سیگنال یکسانی را مقید می‌کنند، اتصال متقابل رفتاری آن‌ها چنین است

\[ \mathcal B_1\parallel\mathcal B_2 =\mathcal B_1\cap\mathcal B_2. \]

اگر فقط بعضی متغیرها مشترک باشند، ترکیب در عوض سازگاری روی آن رابط را تحمیل می‌کند که با پس‌کش یا حاصل‌ضرب تاری نمایش داده می‌شود. پنهان‌کردن یک سیگنال از راه \(\pi:W\to V\) تصویر وجودی زیر را می‌گیرد

\[ \pi_*\mathcal B =\{\pi\circ w:w\in\mathcal B\}. \]

اتصال متقابل مسیرها را حذف می‌کند؛ پنهان‌سازی آن‌ها را همسان می‌کند. این عملیات عموماً جابه‌جاپذیر نیستند:

\[ \pi_*(\mathcal B_1\cap\mathcal B_2) \subseteq \pi_*\mathcal B_1\cap\pi_*\mathcal B_2, \]

و شمول می‌تواند اکید باشد، زیرا دو عضویت تصویرشده شاید از شاهدهای پنهان ناسازگار استفاده کنند. حتی دو مؤلفهٔ ناتهی می‌توانند اتصال متقابلی تهی داشته باشند. پس ترکیب، هم سازگاری و هم زیست‌پذیری می‌خواهد، نه فقط امکان‌پذیری تک‌تک مؤلفه‌ها.

تغییر مختصات دقیق، نحوهٔ نمایش را با حفظ رفتار مجاز منتقل می‌کند. انتزاع چندبه‌یک است و ممکن است امکان‌های رفتاری را یکی کند یا بیفزاید، مگر آنکه شرط‌های انتقال اثبات شوند. بسط، حسگر، عملگر، محمول، متغیر، اوراکل یا اصل موضوع تازه‌ای می‌افزاید و در نتیجه رویارویی را تغییر می‌دهد.

دو جهت انتقال

فرض کنید \(x\to_X x'\) و \(a\to_A a'\) به‌ترتیب روابط گام عینی و انتزاعی باشند. شبیه‌سازی پیشرو مستلزم این است:

\[ x\to_X x' \quad\Longrightarrow\quad \phi(x)\to_A\phi(x'). \]

این شرط هر مسیر عینی را به مسیری انتزاعی می‌برد. همراه با حفظ هدف‌ها، ثابت می‌کند موفقیت عینی مستلزم موفقیت انتزاعی است. عکس نقیض آن می‌تواند از ناممکنی انتزاعی، ناممکنی عینی را گواهی کند.

اما اجرای برنامهٔ انتزاعی را توجیه نمی‌کند. برای آن جهت، شرط بالابردن موضعی گام لازم است:

\[ \phi(x)\to_A a' \quad\Longrightarrow\quad \exists x',\ x\to_X x'\ \text{ and }\ \phi(x')=a'. \]

سور از حالت جاری مشخص \(x\) آغاز می‌شود. کافی نیست نماینده‌ای مناسب از همان سلول انتزاعی بتواند گام را محقق کند. سپس استقرا مسیر انتزاعی متناهی را گام‌به‌گام بالا می‌برد.

هدف‌ها نیز به هر دو جهت نیاز دارند. برای هدف عینی \(G_X\) و هدف انتزاعی \(G_A\)، انتقال دقیق دسترس‌پذیری از این شرط استفاده می‌کند:

\[ x\in G_X\quad\Longleftrightarrow\quad\phi(x)\in G_A. \]

شبیه‌سازی پیشرو، بالابردن گام و هم‌ارزی هدف در کنار هم نتیجه می‌دهند:

\[ x\leadsto_X G_X \quad\Longleftrightarrow\quad \phi(x)\leadsto_A G_A. \]

هر مقدمه کار جداگانه‌ای انجام می‌دهد. شبیه‌سازی پیشرو تصویرهای انتزاعی معتبر از رفتار عینی می‌دهد. بالابردن از برنامه‌های انتزاعی کاذب جلوگیری می‌کند. بازتاب هدف نمی‌گذارد حالتی عینی و ناهدف فقط به این دلیل موفق اعلام شود که سلولش هدفی را در خود دارد.

این شرایط آگاهانه قوی‌اند. انتزاع‌های تقریبی تساوی‌ها را با کران‌های خطا، شبیه‌سازی یا ارزش جایگزین می‌کنند. انتزاع‌های احتمالی هسته‌ها یا توزیع‌ها را می‌سنجند. حفظ ایمنی، هزینه و مانع به مقدمات خاص خود نیاز دارد. هم‌ارزی دسترس‌پذیری به‌تنهایی هیچ‌یک را ثابت نمی‌کند.

رفتار محلی و ایمنی

بگذارید \(\mathcal B(U)\) مسیرهای مجاز روی ناحیهٔ زمانی \(U\) را نشان دهد. محدودکردن به ناحیه‌های کوچک‌تر داده‌ای پیش‌شیف‌مانند می‌دهد. وقتی توابع خام روی دو ناحیه در اشتراک توافق دارند، در سطح تابع چسبانش یکتایی دارند. برای آنکه رفتارهای محلی مجاز یک شیف بسازند، محدودسازی‌ها باید همچنان مجاز بمانند و اعضای محلی سازگار باید چسبانش سراسری مجاز یکتایی داشته باشند. این ویژگی باید اثبات شود؛ قیدهای دلخواه محلی و سراسری لزوماً آن را ندارند.

روی یک سایت برگزیده از ناحیه‌های زمانی، شیف‌ها توپوسی می‌سازند که منطق درونی‌اش عموماً شهودگرایانه است. پس از تعریف نوع‌های سیگنال، ساختار زمانی و مفهوم‌های حل، این چارچوب می‌تواند زبان معناشناختی مشترکی برای رفتار پیوسته، گسسته و هیبریدی فراهم کند. وجه‌های زمانی به ساختار زمانی بیشتری نیاز دارند. نه توپوس و نه زبان درونی آن صرفاً با بیان یک ادعای ایمنی، آن را اثبات نمی‌کنند.

این هندسهٔ منطقی در ترتیب تاربندی‌شدهٔ دشواری نیاکانی نام‌دار دارد. تریپوس، به معنای هایلند و جانستون و پیتس، پیش‌ترتیبی تاربندی‌شده است با ساختارِ کافی برای ساختن مدل‌های منطق شهودی، یعنی ترتیبی تاربندی‌شده که به کارِ ساختن گماشته شده است. و قضیهٔ رده‌بندی زیرتوپوس‌ها از لاوی‌یر و تیرنی نشان می‌دهد که درون یک توپوس، عملگرهای بستارِ مجاز بر منطقش دقیقاً با زیرتوپوس‌هایش متناظرند، که قوی‌ترین نمونهٔ کلاسیک از رده‌بندی‌شدنِ مرزها با بستار است. این قیاس جهت‌نماست، نه اثبات‌شده: عملگرهای بستارِ بخش ۶ روی مجموعه‌های امکان عمل می‌کنند، نه روی رده‌بندِ زیرشیء، و هیچ قضیه‌ای در اینجا رده‌های دشواری را با توپولوژی‌های یک فضای تاربندی‌شده رده‌بندی نمی‌کند. این شباهت سنت را نشانی می‌دهد؛ اثبات‌هایش را قرض نمی‌گیرد.

برای یک محمول حالت \(C\)، تعریف کنید

\[ \operatorname{Safe}(C) =\{w:\forall t,\ C(w(t))\}. \]

آنگاه ادعای ایمنی زمانی به‌سادگی چنین است

\[ \mathcal B\models\Box C \quad\Longleftrightarrow\quad \mathcal B\subseteq\operatorname{Safe}(C). \]

برای دینامیک قطعی گسسته، اگر \(\mathcal B_C\) همهٔ اجراهای آغازشده در \(C\) را در بر گیرد، آنگاه

\[ \mathcal B_C\models\Box C \quad\Longleftrightarrow\quad F(C)\subseteq C. \]

پس ادعای ایمنی در همهٔ زمان‌ها، برای این رفتار اعلام‌شده، به یک ناوردای یک‌گامی فروکاسته می‌شود. اتصال متقابل فرایند و کنترل‌گر فقط هنگامی امن است که رفتار بستهٔ آن شمول را برآورده کند. بی‌بن‌بستی یا زیست‌پذیری تعهدی جدا می‌ماند: رفتار تهی هر ادعای ایمنی همگانی را به‌طور تهی‌صدق برآورده می‌کند.

همین هشدار دربارهٔ مسیرهای فشرده برقرار است. پشتوانهٔ نقاط پایانی دسترس‌پذیری را حفظ می‌کند. ایمنی مسیری می‌خواهد هر حالت میانی پنهان امن باشد و حفظ مانع، کران امتیاز جداگانهٔ خود را می‌خواهد. یال فشرده فقط از ویژگی‌هایی پشتیبانی می‌کند که مسیر پشتوانه‌اش گواهی کرده است. مسیر بازگشت محتوای ریاضی ادعای این است که راه‌حل انتزاعی، مسئلهٔ اصلی را حل می‌کند.

فصل ۵پیچیدگی و ترتیب تاربندی‌شده

هر کران به یک خانواده و یک ماشین نیاز دارد

کران مجانبی منابع به خانوادهٔ \(\{\mathcal I_n\}\)، کدگذاری و پارامتر اندازهٔ \(n\)، مدل ماشین یا دسترسی، معیار موفقیت یا زیان و سنجهٔ منابع مربوط است. مفهوم‌های جداگانه‌ای در سطح نمونه، از جمله پیچیدگی کولموگروف و پیچیدگی نمونه، نیز وجود دارند. زمان، فضای کار، پرس‌وجوها، نمونه‌ها، ارتباط، بیت‌های تصادفی، دقت و انرژی فیزیکی تا زمانی که مدل تبدیلی ارائه نشود جایگزین یکدیگر نیستند.

مشخصات ناگفته اهمیت دارند. جریان یک‌گذره و آرایهٔ بازخواندنی دسترسی اطلاعاتی متفاوتی می‌دهند. ماشین واژه‌ای با دسترسی تصادفی و ماشین تورینگ برای عملیات اولیهٔ متفاوتی هزینه منظور می‌کنند. تولید دقیق و درستی‌سنجی پرسش‌هایی متفاوت‌اند. تحلیل بدترین‌حالت، میانگین و هموارشده از سورها یا توزیع‌های متفاوتی برای ورودی استفاده می‌کنند. فضای جست‌وجوی بزرگ به‌تنهایی در هیچ‌یک از آن‌ها کران پایین نیست.

به‌جای فشردن این منابع در یک عدد، مدلی را ثابت کنید و برای هر برنامهٔ مجاز \(p\)، بردار منابع \(\operatorname{Res}(p)\) و بردار زیان \(\operatorname{Loss}(p)\) را در نظر بگیرید، به‌گونه‌ای که سورهای مطلوب روی نمونه‌ها از پیش در این توابع گنجانده شده باشند. هر مختصه را در اعداد حقیقی نامنفی گسترش‌یافته بگیرید، بردارها را مؤلفه‌به‌مؤلفه مرتب کنید و مقادیر کمتر منابع و زیان را بهتر بدانید. تعریف کنید:

\[ \mathsf{Ach} =\{(r,\ell):\exists p, \operatorname{Res}(p)\preceq r, \ \operatorname{Loss}(p)\preceq\ell\}. \]

این ناحیهٔ دست‌یافتنی نسبت به بالا بسته است: برنامه‌ای که یک جفت کران را برآورده می‌کند، هر جفت سست‌تر را نیز برآورده می‌کند. نقاط دست‌یافتنی نامغلوب آن، هرگاه وجود داشته باشند، کمینه‌های پارتو هستند. بده‌بستان‌های حدی الزاماً محقق نمی‌شوند؛ آن‌ها روی مرز پایین بست قرار می‌گیرند و نه لزوماً در \(\mathsf{Ach}\). زمان بیشتر ممکن است خطای کمتر بخرد. اندازه‌گیری بیشتر شاید زمان را کاهش دهد. حافظهٔ بیشتر می‌تواند جای محاسبهٔ دوباره را بگیرد. برخی بده‌بستان‌ها ناممکن‌اند، زیرا مرز اطلاعات یا کنش پیش از آغاز محاسبه آن‌ها را حذف کرده است.

برای یک منبع به نام زمان و هدف اعوجاج \(D\)، برش با مقدار گسترش‌یافتهٔ \(\tau(D)\in[0,+\infty]\) را چنین تعریف کنید:

\[ \tau(D) =\inf\{t:\exists p, \operatorname{Time}(p)\le t, \ \operatorname{Loss}(p)\le D\}. \]

اگر مجموعه تهی باشد، \(\tau(D)=+\infty\). وقتی مشاهده‌ها منبع محدودکننده‌اند، کران پایین اطلاعاتی فصل ۱ کرانی پایین برای چنین برشی است. رابطهٔ بازگشتی مقاوم فصل ۲ لوله‌ای نهایی را گواهی می‌کند، اما بدون کران پایین تخاصمی متناظر، خطاهای کوچک‌تر را دست‌نیافتنی نمی‌سازد. دسترس‌پذیری می‌تواند زیان هدف را مستقل از محاسبه دست‌نیافتنی سازد. وقتی این نتایج در یک بافت گرد آورده شوند، برش‌های متفاوتی از یک ناحیهٔ دست‌یافتنی را مقید می‌کنند. آن‌ها تعریف‌هایی رقیب برای نرده‌ای پنهان نیستند.

ترتیب تاربندی‌شدهٔ دشواری

یک بافت مقایسهٔ \(c\)، کار مشترک، سورهای نمونه و محیط، کلاس عدم‌قطعیت، برنامه‌های مجاز، رابط‌های اطلاعات و کنش و مختصات منبع و زیان را ثابت می‌کند. بگذارید \(P_c\) فضای مرتب عملکرد آن باشد. تار پیرامونی مجموعهٔ توانی است

\[ \mathcal R_c=\mathcal P(P_c), \]

که با شمول مرتب می‌شود. بگذارید \(\operatorname{Enc}(c)\) رویارویی‌های اعلام‌شده برای مقایسه باشد. دست‌یافتنی‌بودن نگاشتی است

\[ \mathsf{Ach}_c:\operatorname{Enc}(c)\longrightarrow\mathcal R_c \]

که مقادیرش ناحیه‌های رو به بالا بسته‌اند. درون همین یک بافت، تعریف کنید

\[ E_1\mathrel{\unrhd_c}E_2 \quad\Longleftrightarrow\quad \mathsf{Ach}_c(E_1)\subseteq\mathsf{Ach}_c(E_2), \]

و \(E_1\unrhd_c E_2\) را چنین بخوانید: «\(E_1\) دست‌کم به اندازهٔ \(E_2\) دشوار است.» این رابطه بازتابی و تعدی‌پذیر است، اما روی رویارویی‌ها لزوماً پادتقارنی نیست. دو فرایند، کانال مشاهده یا نحوهٔ نمایش متفاوت می‌توانند دقیقاً ناحیهٔ دست‌یافتنی یکسانی داشته باشند. خارج‌قسمت بگیرید بر حسب

\[ E_1\sim_c E_2 \quad\Longleftrightarrow\quad \mathsf{Ach}_c(E_1)=\mathsf{Ach}_c(E_2). \]

این خارج‌قسمت با تصویر تحقق‌یافته هم‌ترتیب است:

\[ \operatorname{Enc}(c)/{\sim_c} \ \cong\ \operatorname{im}(\mathsf{Ach}_c) \ \subseteq\ \mathcal R_c. \]

این تصویر عموماً فقط زیرترتیبی جزئی از تار پیرامونی است. برابری با \(\mathcal R_c\) ادعا می‌کند هر زیرمجموعهٔ \(P_c\) ناحیهٔ دست‌یافتنیِ رویارویی‌ای است، که نه فرض شده و معمولاً نادرست است. خارج‌قسمت همچنین هر تمایزی را فراموش می‌کند که مختصات عملکرد برگزیده ثبت نمی‌کنند؛ این همانیِ سامانه‌های زیربنایی نیست.

ترتیب تحقق‌یافته لزوماً تام نیست. دو رویارویی هنگامی قیاس‌ناپذیرند که هیچ‌یک از دو ناحیهٔ دست‌یافتنی در دیگری نگنجد. مرزهای متقاطع پارتو شاهدی هندسی و رایج‌اند: یک رویارویی ممکن است در دقت زمخت بهتر و نزدیک دقت کامل بدتر باشد. نرده‌ای‌سازی ساختاری افزوده است و می‌تواند رتبه‌بندی را وارونه کند.

برای مرتبط‌کردن تارهای پیرامونی، رده‌ای \(\mathcal C\) از بافت‌ها برگزینید. پیکان \(f:c\to d\) نگاشتی از نقاط عملکرد \(u_f:P_c\to P_d\) را دربر دارد که با همانی‌ها و ترکیب سازگار است. پیش‌تصویر می‌دهد

\[ f^*:\mathcal R_d\longrightarrow\mathcal R_c, \qquad f^*(A)=u_f^{-1}(A). \]

این نگاشت یکنوا و اکیداً پادورد است:

\[ (\operatorname{id}_c)^*=\operatorname{id}_{\mathcal R_c}, \qquad (g\circ f)^*=f^*\circ g^*. \]

پس داده‌های پیرامونی یک ترتیب جزئیِ نمایه‌گذاری‌شدهٔ اکیداً پادورد می‌سازند

\[ \mathcal R:\mathcal C^{\mathrm{op}}\longrightarrow\mathbf{Pos}. \]

این‌ها داده‌های زیربنای یک ترتیب تاربندی‌شدهٔ اسپلیت‌اند. داده‌های محیطی مقولهٔ کلِ گروتندیک را بر روی بافت‌ها می‌سازند، و اسپلیتِ انتخاب‌شده لیفت‌های دکارتی‌ای را فراهم می‌کند که خاصیت جهانی آن را برمی‌آورند.

پیش‌تصویر همیشه شمول را حفظ می‌کند. هرگاه \(u_f\) پوشا باشد، شمول را نیز بازتاب می‌دهد:

\[ f^*(A)\subseteq f^*(B) \Longrightarrow A\subseteq B. \]

یک تناظر دوسویهٔ مختصات عملکرد برای بازتاب کافی است و هم‌ریختی ترتیبی میان تارهای پیرامونی می‌دهد، اما دوسویگی از آنچه بازتاب نیاز دارد قوی‌تر است.

حتی بدون بسته‌بودن ناحیه‌های تحقق‌یافته، \(f\) مقایسهٔ ناهمگون دو رویارویی داده‌شده را ممکن می‌کند:

\[ E_c\mathrel{\unrhd_f}E_d \quad\Longleftrightarrow\quad \mathsf{Ach}_c(E_c) \subseteq u_f^{-1}\bigl(\mathsf{Ach}_d(E_d)\bigr). \]

این مقایسه رویارویی مقصد را به رویارویی‌ای در بافت مبدأ بدل نمی‌کند.

بازنمایه‌گذاری پیرامونی به‌خودی‌خود رویارویی‌ای در مبدأ برنمی‌گزیند. پیش‌تصویر ناحیه‌ای تحقق‌یافته در \(d\) نیز لزوماً در \(\operatorname{im}(\mathsf{Ach}_c)\) قرار ندارد. برای محدودکردن \(f^*\) به زیرترتیب‌های جزئی تحقق‌یافته، ضعیف‌ترین شرط افزوده بسته‌بودن زیر پیش‌تصویر است:

\[ A\in\operatorname{im}(\mathsf{Ach}_d) \quad\Longrightarrow\quad u_f^{-1}(A)\in\operatorname{im}(\mathsf{Ach}_c). \]

یکی از راه‌های کافی برای اثبات این بسته‌بودن و انتخاب نمایندگانی در مبدأ، انتقال رویارویی \(T_f:\operatorname{Enc}(d)\to\operatorname{Enc}(c)\) است که برآورده کند

\[ \mathsf{Ach}_c(T_fE) =u_f^{-1}\bigl(\mathsf{Ach}_d(E)\bigr). \]

ضمیمهٔ Lean این شاهد قوی‌تر را بسته‌بندی می‌کند. در سطح ناحیه، همانی و ترکیب آنگاه از پیش‌تصویر پیروی می‌کنند؛ پس از یکی‌گرفتن ناحیه‌های برابر، لازم نیست شاهدهای خام و برگزیدهٔ رویارویی با هم برابر باشند. بدون بسته‌بودن زیر پیش‌تصویر، چه مستقیم ثابت شود و چه از راه انتقال رویارویی، فقط مجموعه‌های توانی پیرامونی تاربندی شده‌اند.

این پیش‌تصویر پادورد را باید از تصویر مستقیم و اتلافی جدا کرد. برای نگاشت چندبه‌یک \(q:P_c\to P_d\)، عملیات هم‌ورد

\[ q_!:\mathcal R_c\longrightarrow\mathcal R_d, \qquad q_!(A)=\{q(x):x\in A\} \]

یکنواست، اما می‌تواند زیرمجموعه‌های متفاوت را به یک تصویر بفرستد و ازاین‌رو در بازتاب شمول شکست بخورد. نایک‌به‌یکی موجب این فروپاشی است. این ویژگی به‌خودی‌خود بازتاب پیش‌تصویر را مختل نمی‌کند؛ در آنجا پوشایی شرط مربوط است.

در این کتاب رده‌ای کانونی از همهٔ بافت‌ها وجود ندارد. اشیا، نگاشت‌های عملکرد و قوانین بازنمایه‌گذاری جزئی از هر ادعا هستند. نگاشت فراهم‌شده امکان مقایسهٔ ناهمگونِ رویارویی‌های داده‌شده در مبدأ و مقصد را می‌دهد، حتی اگر پیش‌تصویرش با رویارویی دیگری در مبدأ تحقق نیابد. ترتیب تاربندی‌شدهٔ شکافته روی رده‌های تحقق‌یافته به بسته‌بودن زیر پیش‌تصویر نیاز دارد. انتقال برگزیدهٔ رویارویی‌های خاص داده‌هایی قوی‌تر است. همچنین تاربندی‌شده نه توپولوژی، نه خمینه، نه ترتیب تام موضعی و نه رتبه‌بندی سراسری را ادعا می‌کند.

یک مقوله‌زدایی سزاوارِ حکم است، نه وسوسه. تکمیلِ گروهی یک مونوئیدِ جابه‌جاییِ رده‌های دشواری را به گروهِ گروتندیکش می‌برد، و حاصل هر چه ترتیب حمل می‌کرد از یاد می‌برد. ناحیه‌های دست‌یافتنی با اجتماع ترکیب می‌شوند، اجتماع خودتوان است، و گروهِ گروتندیکِ هر مونوئیدِ جابه‌جاییِ خودتوان بدیهی است؛ پس K-گروهِ مونوئیدِ ناحیه‌ها بر هر فضای عملکردی به یک عنصر فرومی‌ریزد. نگاشتِ کانونی دو رده را دقیقاً وقتی یکی می‌گیرد که عاملی مشترک، ضرب‌شده در هر دو، آن‌ها را به توافق برساند؛ و عامل‌هایی که چیزِ تازه‌ای را یکی می‌گیرند دقیقاً همان حذف‌ناپذیرهایند. تکمیل بر مقیاس‌های هزینهٔ حذف‌پذیر مانند شمارش‌های دقیقِ منابع یک‌به‌یک است، و همان‌جا اتلاف‌گر است که موضوعِ این فصل زندگی می‌کند: مقیاسِ بودجهٔ اشباع‌شونده با بیشینهٔ جاذب هم تکمیلِ بدیهی دارد. ناوردایی گروه‌مقدار که از این راه به دست آید نمی‌تواند هیچ دو ردهٔ دشواری را از هم جدا کند، و همین است که کتاب ترتیب را نگه می‌دارد و به K-نظریهٔ آن گذر نمی‌کند.

وسوسهٔ دومِ مقوله‌زدایی، تاب است. در K-نظریهٔ تاب‌دار، ناوردایی‌های محلی که در چسبیدنِ سراسری شکست می‌خورند زیر فرمان یک کوسیکل‌اند، و ردهٔ تاب اندازهٔ شکستِ هر یکی‌سازیِ سراسریِ سازگار است. ترتیبِ تاربندی‌شده دقیقاً در همین وضعیتِ چسباندن است، و ترجمه‌های مسیروابستهٔ عملکرد، یعنی تبدیل‌هایی میان بافت‌ها که سرِ راست ترکیب نمی‌شوند، دقیقاً چنین کوسیکلی می‌بودند. هر دو راه به تاب اینجا بسته است، و هر دو بستن بررسی شده‌اند. تارها ترتیب‌های جزئی‌اند، و ساختارهای نمایه‌دارِ ترتیب‌مقدار سرِ راست اکیدند؛ پس هیچ دادهٔ مقایسه‌ای برای زیستنِ تاب وجود ندارد. K-گروه‌های ضریب هم به حکمِ فروریختنِ بالا بدیهی‌اند؛ پس تاب به هر حال چیزی نداشت که بر آن اثر کند. اما همین که تارها اتومورفیسم‌های واقعی داشته باشند، مانع واقعی می‌شود: مثالی با گروهِ دوعضوی داده‌های مقایسه‌ای دارد که از یک کوسیکل می‌آیند و هیچ بازگزینشِ ضریب‌ها صافشان نمی‌کند. نظریهٔ تاب‌دارِ دشواری دقیقاً همین را می‌خواست: تارهایی که بیش از ترتیب به یاد بسپارند، و ضریب‌هایی از بخشِ حذف‌پذیر، همان‌جا که تکمیل وفادار است.

دامنه‌های متناهی و الگوریتم‌های غایب

فرض کنید \(E\) مجموعه‌ای متناهی و ناتهی از برنامه‌های مجاز باشد و \(V(p)\) ارزش آن‌ها را نشان دهد. چون دامنه متناهی است، بیشینه‌کننده‌ای وجود دارد. اگر \(E\subseteq F\) باشد، بهینهٔ روی \(F\) نمی‌تواند بدتر باشد. اگر برنامه‌ای حذف‌شده از همهٔ اعضای \(E\) بهتر باشد، شکافی اکید پدید می‌آید.

این واقعیت‌های ابتدایی سودمندند، زیرا سوری را آشکار می‌کنند که اغلب پنهان است. بهینه نسبت به دامنهٔ جست‌وجو، بهینهٔ سراسری نیست. گسترش دامنه شاید ارزش را بهتر کند، اما جست‌وجوی دامنهٔ بزرگ‌تر ممکن است منابع بیشتری بخواهد. در دامنه‌ای نامتناهی حتی وجود بیشینه‌کننده می‌تواند شکست بخورد و کوچک‌ترین کران بالا یا بزرگ‌ترین کران پایین الزاماً به دست نمی‌آید.

همین تمایز دربارهٔ بازنمایی برقرار است. قضیهٔ وجود یک آمارهٔ فشرده و بسنده، الگوریتم محاسبهٔ آن را فراهم نمی‌کند. هم‌ارزی مختصاتی می‌تواند رفتار را حفظ کند، اما کشفش پرهزینه باشد. وجود کلاسیک، ساخت محاسبه‌پذیر و ساخت کارآمد نقاط متفاوتی از مرز دست‌یافتنی را اشغال می‌کنند.

شمار حالت‌ها کران حفظ اطلاعات است

کران‌های پایین حالت متناهی زمانی معنادار می‌شوند که رابط دقیق باشد. ماشین هدف را هنگامی خروجی‌جداشده بنامید که برای هر زوج متمایز \(s\ne t\)، واژهٔ ورودی متناهی \(w\) وجود داشته باشد که پس از آن خروجی‌هایشان متفاوت شوند. هر ماشینی که آن را دقیقاً ردیابی می‌کند به کدگذاری یک‌به‌یک آن حالت‌ها نیاز دارد. پس:

\[ |S_{\mathrm{target}}|\le |S_{\mathrm{tracker}}|. \]

این شرط ظرفیت است، نه نظریه‌ای دربارهٔ فهم. شمار برابر حالت‌ها وجود نگاشت ردیابی را تضمین نمی‌کند و خارج‌قسمتی کوچک‌تر ممکن است هرآنچه برای یک مسئله لازم است حفظ کند.

مثال ضرب مکانی در ضمیمهٔ صوری حتی خاص‌تر است. برای \(b\ge2\) و \(n>0\)، ماشین ثباتی یک‌گذره دو عملوند \(n\)رقمی در مبنای \(b\) را می‌خواند، \(k\) ثبات با \(r\) مقدار برای هر یک نگه می‌دارد و حاصل‌ضرب را فقط از حالت نهایی ثبات‌هایش بیرون می‌دهد. ثابت‌کردن عملوند دوم روی یک، مسئله را به بازتولید با تأخیر عملوند نخست تبدیل می‌کند. پس عملوندهای نخست متفاوت باید به پیکربندی‌های متفاوتی ختم شوند:

\[ b^n\le r^k. \]

اگر همهٔ پیکربندی‌ها در \(m\) بیت جا شوند، آنگاه \(n\le m\). کران پایین دربارهٔ نگه‌داشتن یک عملوند تحت رابط یک‌گذره با خروجی نهایی است. این کران پایین ضرب در رده‌های استاندارد پیچیدگی نیست. ورودی بازخواندنی، حافظهٔ کمکی یا خروجی تدریجی مدل را تغییر می‌دهد و می‌تواند استدلال را نامعتبر کند.

تبدیل حالت‌ها به بیت‌ها ضروری است. ماشینی با \(2^s\) حالت، \(s\) بیت ظرفیت حالت دارد، نه \(2^s\) بیت. شمار نمایی حالت‌ها و کران خطی بیت‌ها یک گزاره در دو واحد متفاوت‌اند.

هزینه کجا پرداخت می‌شود

بازنمایی‌ها می‌توانند کار را در زمان جابه‌جا کنند. ساخت نمایه، سلسله‌مراتب انتزاع، مدار کامپایل‌شده یا کتابخانهٔ اثبات ممکن است پرهزینه و پرس‌وجو از آن ارزان باشد. بردار منصفانهٔ منابع پیش‌پردازش را از هزینهٔ برخط جدا می‌کند و روشن می‌سازد آیا هزینهٔ مصنوع میان نمونه‌ها سرشکن می‌شود یا نه. درنظرگرفتن مصنوع ویژهٔ مسئله همچون راهنمایی رایگان، مدل محاسبه را تغییر می‌دهد.

این امر پیش‌پردازش را نامشروع نمی‌کند، بلکه سور آن را آشکار می‌سازد. مقایسهٔ درست ممکن است همان مصنوع برون‌خط را به هر دو عامل بدهد، هزینهٔ ساختش را یک‌بار منظور کند یا خانواده‌های ناهمگنی را بررسی کند که در هر اندازه مصنوعی متفاوت می‌گیرند. هر قرارداد ناحیهٔ دست‌یافتنی متفاوتی تعریف می‌کند.

نظریهٔ پیچیدگی عینیت را نه با حذف مدل‌ها، بلکه با اعلام آن‌ها و اثبات روابط ناوردایی یا شبیه‌سازی در یک ردهٔ مقایسه به دست می‌آورد. وابستگی به مدل مهار می‌شود، نه انکار.

فصل ۶چه چیز عینی باقی می‌ماند

واقع‌گرایی رابطه‌ای

اگر اجازه دهیم هر زمان نتیجه‌ای ناخوشایند بود رابطه عوض شود، ادعای رابطه‌ای‌بودن دشواری بی‌محتوا می‌شود. این ادعا فقط هنگامی جوهری پیدا می‌کند که ردهٔ مقایسه پیش از مقایسه ثابت شده باشد.

درون توزیع پیشین منبع، قانون مشاهده و ردهٔ آزمایش مجازِ ثابت، اطلاعات متقابل و هم‌ارزی مشاهداتی ویژگی‌های عینی مدل‌اند. درون سامانهٔ کنش ثابت، دسترس‌پذیری و عمق مانع عینی‌اند. درون ماشین و کدگذاری ثابت، کران پایین منابع عینی است. گزاره‌های آن‌ها شامل رابطه است، همان‌طور که سرعت، کنترل‌پذیری و بسندگی آماری چنین‌اند. رابطه‌ای به معنای دل‌بخواهی نیست.

برابری رفتاری صورتی برون‌گستر از عینیت می‌دهد. وقتی \(T\)، \(W\) و مرز سیگنال ثابت باشند، دو نحوهٔ نمایش با \(\mathcal B\) یکسان بر سر هر ویژگی‌ای که فقط دربارهٔ آن مسیرها بیان شود توافق دارند. هم‌ارزی دقیق مختصاتی، شبیه‌سازی‌های کارآمد ماشین و بازبرچسب‌گذاری‌های گراف که هدف را حفظ می‌کنند، ناوردایی‌های کنترل‌شدهٔ دیگری‌اند.

هیچ‌یک نگاهی از ناکجا به دست نمی‌دهد. پنهان‌کردن سیگنال، تغییر رفتار مجاز، استفاده از انتزاع چندبه‌یک یا افزودن حسگر، عملگر یا محمول، ادعا را تغییر می‌دهد مگر قضیه‌ای انتقالی خلاف آن را بگوید. اگر مرز دست‌یافتنی تغییر کند، آن تغییر واقعی است، اما به رابطه‌ای تازه مربوط می‌شود. مقایسه‌اش با رابطهٔ قدیم به نگاشت بافتیِ اعلام‌شده نیاز دارد؛ بدون چنین نگاشتی، ترتیب پیشنهادی هنوز ادعایی درست‌ساخت نیست.

چهار تصویر، نه چهار جوهر

کاربردهای عادی واژهٔ دشوار را همچنان می‌توان برحسب مرزی که آشکار می‌کنند دسته‌بندی کرد:

این‌ها تصویرهایی از یک مواجهه‌اند، نه هستی‌شناسی‌ای جامع. مدل تغییریافته می‌تواند چند مورد را هم‌زمان بسازد. متغیر حالت غایب می‌تواند به‌شکل خطای پیش‌بینی، کنترل ضعیف و جست‌وجوی ناکارآمد ظاهر شود. برعکس، یک مداخله ممکن است مانعی را با مانعی دیگر عوض کند: بازنمایی غنی‌تر می‌تواند محاسبهٔ برخط را کاهش دهد و هم‌زمان هزینهٔ کسب و ذخیره را بالا ببرد.

محدودیت بیانی کمتر از همه تن به آزمونی صوری و ثابت می‌دهد. برای واژگانی متناهی و اعلام‌شده، تعریف‌پذیری را می‌توان از راه افرازی که القا می‌کند بررسی کرد. اما افزودن دستوری محمول هدف، ابداع محمولی تازه و سودمند را ثبت نمی‌کند. آن کار فقط ثابت می‌کند زبان با بسط صریح بیان‌پذیرتر می‌شود.

یک شکل در پسِ سه مرز

مرزهای اطلاعات، کنش و رفتار شکلی جبری را با هم قسمت می‌کنند، و این شکل بررسی شده است، نه فقط شباهتی ظاهری. هر یک عملگرِ بستاری بر یک ترتیب جزئی از امکان‌ها القا می‌کند: ساختنِ مجموعهٔ دست‌یافتنی برای مرز کنش، اشباعِ مشاهده‌ای برای مرز اطلاعات، و پنهان‌سازی و سپس پول‌بک برای مرز رفتار. گسترندگی، یکنوایی و خودتوانی در هر سه مورد برقرارند، به همان معنای استاندارد در ادبیات نظریهٔ ترتیب، نه به معنایی خصوصی.

خودتوانی محتوای چند نتیجه‌ای است که فصل‌های پیشین جدا جدا اثبات کرده بودند. تبدیلی که همین حالا نقطه‌به‌نقطه دست‌یافتنی است، وقتی به‌عنوان عملِ اولیه افزوده شود چیزی نمی‌افزاید. آماره‌ای که از گزارشی موجود محاسبه شود هیچ وضعیت تازه‌ای را جدا نمی‌کند. هر دو می‌گویند بستارِ بستار همان بستار است. در جهت دیگر، عملِ اولیهٔ به‌راستی تازه می‌تواند بستار را اکیداً بزرگ کند، و آزمایشِ ریزتر هرگز اشباعی را بزرگ نمی‌کند؛ پس بسط و پالایش بر خودِ بستار اثر می‌گذارند، نه بر تلاش در درون آن.

این یگانه‌سازی حدهایی اثبات‌شده دارد، و همین حدها اطلاعات می‌رسانند. پنهان‌سازی اتصال متقابل را فقط تا حدِ یک شمول حفظ می‌کند و آن شمول می‌تواند اکید باشد، پس بستارِ رفتاری همریختیِ مشبکه‌ای نیست، و استدلالی که این دو عمل را بی‌صدا جابه‌جا کند ناسالم است. و عملگرِ بستاری که تاربه‌تار داده شده باشد لازم نیست با بازنمایه‌گذاری میان بافت‌ها جابه‌جا شود: انتقالِ بستار می‌تواند با بستارِ انتقال فرق کند، پس حکمی که در یک بافت محاسبه شده لازم نیست حکمِ همان مسئلهٔ انتقال‌یافته باشد. این شکست همان چهرهٔ عملگرِ بستاری از یافتهٔ پیشین است که ناحیه‌های تحقق‌یافته پیش از بازنمایه‌گذاری به بستارِ پیش‌تصویر نیاز دارند. آنچه منتقل می‌شود شکلِ عملگر است، نه حکم‌هایش.

این شکل نیاکانی کلاسیک دارد، و شباهت از جنس پیشینه است نه مرجعیت. لاوی‌یر و تیرنی زیرتوپوس‌های یک توپوس را دقیقاً با آن عملگرهای بستاری بر ساختار زیرشیءهایش رده‌بندی کردند که منطقِ محیط را پاس می‌دارند؛ پس «کدام مرزها را می‌توان کشید» آنجا هم پرسشی ترتیب‌نظری شد. نظریهٔ تریپوس از پیش‌ترتیب‌های نمایه‌دارِ باساختار مدل‌های منطق می‌سازد، یعنی ترتیبی تاربندی‌شده که به کار ساختن گماشته شده است. این همراه هیچ‌یک از آن ماشین‌آلات را بررسی نمی‌کند؛ ارجاع‌ها الگو را نشانی می‌دهند، نه اثبات‌ها را.

هیچ نگاه بی‌جایگاهی در کار نیست

پیش از مشخص‌شدن مسئله و مواجهه، هیچ دشواری نرده‌ای و مستقل از مدل برای یک مسئلهٔ برهنه منتظر اندازه‌گیری نیست. یک نرده پس از تثبیت ردهٔ مقایسه و نرده‌ای‌سازی مشروع می‌شود. آنچه می‌توان اندازه گرفت نرخ‌های اطلاعات، لوله‌های خطا، مجموعه‌های دسترس‌پذیر، عمق موانع، طول اثبات‌ها، اندازهٔ مدارها، شمار پرس‌وجوها، زیان‌های تقریب و بده‌بستان میان آن‌هاست.

دیدگاه رابطه‌ای همچنین نمی‌گوید هر مانعی در برابر بازنمایی هوشمندانه تسلیم می‌شود. پردازش داده اجازه نمی‌دهد بازنمایی شاهد بیافریند. حاشیه‌های مقاومت عدم تطابق قابل‌تحمل را کران می‌زنند. دسترس‌پذیری نمی‌گذارد استنتاج به کنش بدل شود. کران‌های پایین پیچیدگی در رده‌های گسترده‌ای از الگوریتم‌ها باقی می‌مانند. نقشه‌ای روشنگرتر می‌تواند جست‌وجو را تغییر دهد، بی‌آنکه زمینی را که وفادارانه بازمی‌نماید عوض کند.

اکنون می‌توان تز کتاب را بی‌استعاره بیان کرد. برای هر بافت اعلام‌شدهٔ \(c\)، دشواری واقعی زیرترتیبی جزئی و تحقق‌یافته از یک مجموعهٔ توانی پیرامونی را اشغال می‌کند:

\[ \mathcal R_c=\mathcal P(P_c), \qquad \operatorname{Enc}(c)/{\sim_c} \cong\operatorname{im}(\mathsf{Ach}_c) \subseteq\mathcal R_c, \qquad [E_1]\unrhd_c[E_2] \Longleftrightarrow \mathsf{Ach}_c(E_1)\subseteq\mathsf{Ach}_c(E_2). \]

نگاشت‌های نقاط عملکرد، ترتیب پیرامونی و پادورد را می‌دهند

\[ f^*(A)=u_f^{-1}(A), \qquad \mathcal R:\mathcal C^{\mathrm{op}}\to\mathbf{Pos}. \]

نمایش دوم مقایسهٔ ناهمگون دو رویارویی داده‌شده را ممکن می‌کند، اما نمی‌گوید رده‌های تحقق‌یافتهٔ دشواری بازنمایه‌گذاری می‌شوند. آن ادعای قوی‌تر به بسته‌بودن ناحیه‌های تحقق‌یافته زیر پیش‌تصویر نیاز دارد. انتقال سازگار رویارویی یکی از شاهدهای کافی است. این نمایش‌ها شِما هستند، نه ساختی جهان‌شمول یا همانی‌ای عددی. پیش از تثبیت بافت، نگاشت عملکرد و هر انتقال ادعاشدهٔ مسئله، واژهٔ دشوارتر دعوتی است برای پرسیدن اینکه کدام مقایسه ناگفته مانده است.

فصل ۷چه چیز با ماشین بررسی شده است

ضمیمهٔ Lean پیامدهای تعریف‌های صریح متناهی، جبری و ترتیب‌نظری را اثبات می‌کند. این ضمیمه قضیه‌ای به نام دشواری ندارد. کارت‌های زیر فرض‌ها، نتیجه و مرز هر قطعهٔ بررسی‌شده را بیان می‌کنند. بدین ترتیب، از تعمیم گمراه‌کنندهٔ بررسی هسته به کفایت مدل جلوگیری می‌شود. ممکن است قضیه‌ای معتبر باشد، اما فرض‌هایش مشاهده‌گری فیزیکی، آزمایشی مجاز یا هزینهٔ مورد نظر را توصیف نکنند.

پیش‌ترتیب قطعی اطلاعات، بودجه‌ها و بازسازی نرده‌ای

فرض‌ها. گزارشی زمخت و قطعی با یک نگاشت پس‌پردازش از گزارشی ریز به دست می‌آید و کنش‌های پذیرفتنی برای هر حالت جداگانه اعلام می‌شوند. جداگانه، کمیتی انباشته با مقدار حقیقی از زیر \(I_0\) آغاز می‌شود، در هر دور با شمارهٔ طبیعی حداکثر \(C\) رشد می‌کند و تا دور \(n\) به سطح لازم \(R_*\) رسیده است. واریانس پیشین نرده‌ای مثبت \(P_0\) و واریانس اندازه‌گیری مثبت \(R\) در فرمول جبری پسین \(P_n=(P_0^{-1}+nR^{-1})^{-1}\) قرار داده می‌شوند.

نتیجه. پالایش قطعی بازتابی و تعدی‌پذیر است. برابری گزارش‌های ریز، برابری گزارش‌های زمخت را اجبار می‌کند و هر کنشی که برای ردهٔ سازگاری زمخت مقاوم است، برای ردهٔ ریز نیز مقاوم می‌ماند. عامل‌گیری متقابل رده‌های القاشده و مجموعه‌های کنش مقاوم را حفظ می‌کند. یک خارج‌قسمت صریح دوحالتی شمول کنش مقاوم را اکید می‌سازد. به‌طور کلی‌تر، هر قاعدهٔ تصمیم قطعی مبتنی بر آماره‌ای که دو حالت با مجموعه‌های پذیرفتنی مجزا را یکی کند، در یکی از آن دو شکست می‌خورد. کمیت انباشته حداکثر \(I_0+nC\) است و برای \(C>0\)، سقف طبیعی \((R_*-I_0)/C\) حداکثر \(n\) است. اگر واریانس پسین نرده‌ای حداکثر مقدار مثبت \(D\) باشد، آنگاه \(R(D^{-1}-P_0^{-1})\le n\)، و این کران پایین وقتی \(D<P_0\) باشد مثبت است. (بررسی‌شده با ماشین)

Lean declarations and proofs (FeedbackBounds.lean, InformationBudget.lean, InformationOrder.lean, SystemsTheory.lean): HardProblems.InformationOrder.Indist, HardProblems.InformationOrder.indist_equivalence, HardProblems.InformationOrder.ExperimentRefines, HardProblems.InformationOrder.experimentRefines_refl, HardProblems.InformationOrder.experimentRefines_trans, HardProblems.InformationOrder.ExperimentRefines.indist, HardProblems.InformationOrder.RobustActions, HardProblems.InformationOrder.ExperimentRefines.robustActions_mono, HardProblems.InformationOrder.indist_iff_of_mutual_refinement, HardProblems.InformationOrder.robustActions_eq_of_mutual_refinement, HardProblems.InformationOrder.quotient_strict_decision_loss, HardProblems.statistic_based_rule_fails', HardProblems.InformationBudget.accumulated_le_initial_add_rounds_mul, HardProblems.InformationBudget.required_excess_le_rounds_mul, HardProblems.InformationBudget.required_excess_div_capacity_le_rounds, HardProblems.InformationBudget.required_rounds_ceiling_le, HardProblems.ScalarGaussian.posteriorVariance, HardProblems.ScalarGaussian.posteriorVariance_pos, HardProblems.ScalarGaussian.target_accuracy_requires_observations, HardProblems.ScalarGaussian.target_accuracy_nontrivial_boundاجرا اجرا اجرا اجرا
-- LeanTest/HardProblems/InformationOrder.lean
/-- States are indistinguishable under an observation map when they produce
the same report. -/
def Indist {S : Type u} {O : Type v} (observe : S → O) (x y : S) : Prop :=
  observe x = observe y

-- LeanTest/HardProblems/InformationOrder.lean
/-- Equality of reports induces an equivalence relation on states. -/
theorem indist_equivalence {S : Type u} {O : Type v} (observe : S → O) :
    Equivalence (Indist observe) where
  refl _ := rfl
  symm h := h.symm
  trans hxy hyz := hxy.trans hyz

-- LeanTest/HardProblems/InformationOrder.lean
/-- `fine` refines `coarse` when the coarse report is obtained by deterministic
post-processing of the fine report. This orients the existing
`HardProblems.FactorsThrough` relation as an information preorder; it does not
introduce a second notion of factorization. -/
def ExperimentRefines {S : Type u} {F : Type v} {C : Type w}
    (fine : S → F) (coarse : S → C) : Prop :=
  FactorsThrough coarse fine

-- LeanTest/HardProblems/InformationOrder.lean
/-- Every experiment refines itself. -/
theorem experimentRefines_refl {S : Type u} {O : Type v}
    (observe : S → O) : ExperimentRefines observe observe := by
  exact ⟨id, by funext x; rfl⟩

-- LeanTest/HardProblems/InformationOrder.lean
/-- Deterministic experiment refinement is transitive. -/
theorem experimentRefines_trans {S : Type u} {A : Type v} {B : Type w}
    {C : Type z} {first : S → A} {second : S → B} {third : S → C}
    (h₁ : ExperimentRefines first second)
    (h₂ : ExperimentRefines second third) :
    ExperimentRefines first third := by
  rcases h₁ with ⟨post₁, rfl⟩
  rcases h₂ with ⟨post₂, rfl⟩
  exact ⟨post₂ ∘ post₁, by funext x; rfl⟩

-- LeanTest/HardProblems/InformationOrder.lean
/-- Refinement reverses inclusion of indistinguishability classes: equality of
fine reports forces equality of coarse reports. -/
theorem ExperimentRefines.indist {S : Type u} {F : Type v} {C : Type w}
    {fine : S → F} {coarse : S → C}
    (h : ExperimentRefines fine coarse) {x y : S}
    (hxy : Indist fine x y) : Indist coarse x y := by
  exact (show FactorsThrough coarse fine from h).eq_of_eq hxy

-- LeanTest/HardProblems/InformationOrder.lean
/-- Actions acceptable at every state compatible with the current report.
The acceptable-action predicate is part of the task, rather than part of the
observation alone. -/
def RobustActions {S : Type u} {O : Type v} {A : Type w}
    (observe : S → O) (Acceptable : S → A → Prop) (x : S) : Set A :=
  {a | ∀ y, Indist observe x y → Acceptable y a}

-- LeanTest/HardProblems/InformationOrder.lean
/-- A finer experiment weakly enlarges the set of robust acceptable actions.
The result is task-relevant but deterministic: it compares compatibility
classes, not probabilities or average information. -/
theorem ExperimentRefines.robustActions_mono
    {S : Type u} {F : Type v} {C : Type w} {A : Type z}
    {fine : S → F} {coarse : S → C}
    (h : ExperimentRefines fine coarse) (Acceptable : S → A → Prop) (x : S) :
    RobustActions coarse Acceptable x ⊆ RobustActions fine Acceptable x := by
  intro a ha y hxy
  exact ha y (h.indist hxy)

-- LeanTest/HardProblems/InformationOrder.lean
/-- Mutual deterministic factorization gives exactly the same induced
indistinguishability relation. The report types and report values themselves
need not be equal. -/
theorem indist_iff_of_mutual_refinement
    {S : Type u} {O₁ : Type v} {O₂ : Type w}
    {first : S → O₁} {second : S → O₂}
    (h₁₂ : ExperimentRefines first second)
    (h₂₁ : ExperimentRefines second first) (x y : S) :
    Indist first x y ↔ Indist second x y :=
  ⟨h₁₂.indist, h₂₁.indist⟩

-- LeanTest/HardProblems/InformationOrder.lean
/-- Mutual deterministic factorization preserves every robust action set for
every task predicate. -/
theorem robustActions_eq_of_mutual_refinement
    {S : Type u} {O₁ : Type v} {O₂ : Type w} {A : Type z}
    {first : S → O₁} {second : S → O₂}
    (h₁₂ : ExperimentRefines first second)
    (h₂₁ : ExperimentRefines second first)
    (Acceptable : S → A → Prop) (x : S) :
    RobustActions first Acceptable x = RobustActions second Acceptable x := by
  apply Set.Subset.antisymm
  · exact h₂₁.robustActions_mono Acceptable x
  · exact h₁₂.robustActions_mono Acceptable x

-- LeanTest/HardProblems/InformationOrder.lean
/-- A strict finite decision loss. The identity experiment separates the two
Bool states, while the quotient to `Unit` merges them. An action is acceptable
exactly when it names the true state. At state `false`, the fine report permits
the robust action `false`; the coarse report permits no robust action. -/
theorem quotient_strict_decision_loss :
    let fine : Bool → Bool := id
    let coarse : Bool → Unit := fun _ ↦ ()
    let Acceptable : Bool → Bool → Prop := fun state action ↦ state = action
    ExperimentRefines fine coarse ∧
      ¬ Indist fine false true ∧ Indist coarse false true ∧
      RobustActions coarse Acceptable false = ∅ ∧
      RobustActions fine Acceptable false = {false} ∧
      RobustActions coarse Acceptable false ⊂
        RobustActions fine Acceptable false := by
  dsimp
  refine ⟨⟨fun _ ↦ (), rfl⟩, by simp [Indist], by simp [Indist], ?_⟩
  have hCoarse : RobustActions (fun _ : Bool ↦ ())
      (fun state action : Bool ↦ state = action) false = ∅ := by
    ext action
    constructor
    · intro ha
      have hFalse := ha false (by rfl)
      have hTrue := ha true (by rfl)
      simp only [Set.mem_empty_iff_false]
      cases action <;> simp_all
    · simp
  have hFine : RobustActions id
      (fun state action : Bool ↦ state = action) false = {false} := by
    ext action
    simp [RobustActions, Indist]
  refine ⟨hCoarse, hFine, ?_⟩
  rw [hCoarse, hFine]
  exact Set.empty_ssubset.mpr (Set.singleton_nonempty false)

-- LeanTest/HardProblems/SystemsTheory.lean
/-- The statistic-factorization obstruction with an arbitrary statistic
codomain; nothing in the argument uses the real numbers. -/
theorem statistic_based_rule_fails' {Y : Type*} {m : S → Y} (Astar : S → Set A)
    {s s' : S} (hm : m s = m s') (hdisj : Disjoint (Astar s) (Astar s'))
    (α : Y → A) :
    α (m s) ∉ Astar s ∨ α (m s') ∉ Astar s' := by
  by_contra hc
  push Not at hc
  obtain ⟨h1, h2⟩ := hc
  rw [hm] at h1
  exact Set.disjoint_left.mp hdisj h1 h2

-- LeanTest/HardProblems/InformationBudget.lean
/-- An accumulated real-valued quantity with initial upper bound `I₀` and
one-round increment bounded above by `C` is at most `I₀ + n * C` after `n`
rounds.

No nonnegativity hypothesis is needed for this arithmetic statement.  An
information-theoretic application must separately establish that its chosen
quantities and bounds have the intended meaning. -/
theorem accumulated_le_initial_add_rounds_mul
    (accumulated : ℕ → ℝ) (I₀ C : ℝ)
    (hinitial : accumulated 0 ≤ I₀)
    (hstep : ∀ n, accumulated (n + 1) ≤ accumulated n + C) :
    ∀ n, accumulated n ≤ I₀ + (n : ℝ) * C := by
  intro n
  induction n with
  | zero => simpa using hinitial
  | succ n ih =>
      calc
        accumulated (n + 1) ≤ accumulated n + C := hstep n
        _ ≤ (I₀ + (n : ℝ) * C) + C := add_le_add_left ih C
        _ = I₀ + ((n + 1 : ℕ) : ℝ) * C := by
          push_cast
          ring

-- LeanTest/HardProblems/InformationBudget.lean
/-- If reaching the target requires at least `R` units of the accumulated
quantity, and the target has been reached at round `n`, then the required
amount above the initial budget is no larger than `n * C`.

This conclusion is conditional on `hrequired`: the lemma does not prove that a
distortion level really requires `R`, nor that the accumulated scalar is
mutual information. -/
theorem required_excess_le_rounds_mul
    (accumulated : ℕ → ℝ) (I₀ C R : ℝ) (n : ℕ)
    (hinitial : accumulated 0 ≤ I₀)
    (hstep : ∀ k, accumulated (k + 1) ≤ accumulated k + C)
    (hrequired : R ≤ accumulated n) :
    R - I₀ ≤ (n : ℝ) * C := by
  have hbudget :=
    accumulated_le_initial_add_rounds_mul accumulated I₀ C hinitial hstep n
  linarith

-- LeanTest/HardProblems/InformationBudget.lean
/-- With positive per-round capacity, the real-valued required excess divided
by that capacity is a lower bound on the number of rounds.

This is only division of the preceding scalar inequality.  In particular, it
does not identify `R` with a rate-distortion function or `C` with Shannon
capacity. -/
theorem required_excess_div_capacity_le_rounds
    (accumulated : ℕ → ℝ) (I₀ C R : ℝ) (n : ℕ)
    (hinitial : accumulated 0 ≤ I₀)
    (hstep : ∀ k, accumulated (k + 1) ≤ accumulated k + C)
    (hrequired : R ≤ accumulated n) (hC : 0 < C) :
    (R - I₀) / C ≤ (n : ℝ) := by
  apply (div_le_iff₀ hC).2
  exact required_excess_le_rounds_mul accumulated I₀ C R n
    hinitial hstep hrequired

-- LeanTest/HardProblems/InformationBudget.lean
/-- Since rounds are natural numbers, the natural ceiling of the real-valued
ratio is also a lower bound on the round count.

If `R ≤ I₀`, the ratio may be nonpositive and the ceiling is zero; the theorem
then correctly gives only the vacuous lower bound `0 ≤ n`. -/
theorem required_rounds_ceiling_le
    (accumulated : ℕ → ℝ) (I₀ C R : ℝ) (n : ℕ)
    (hinitial : accumulated 0 ≤ I₀)
    (hstep : ∀ k, accumulated (k + 1) ≤ accumulated k + C)
    (hrequired : R ≤ accumulated n) (hC : 0 < C) :
    Nat.ceil ((R - I₀) / C) ≤ n := by
  apply Nat.ceil_le.mpr
  exact required_excess_div_capacity_le_rounds accumulated I₀ C R n
    hinitial hstep hrequired hC

-- LeanTest/HardProblems/FeedbackBounds.lean
/-- Algebraic posterior variance for a scalar Gaussian prior of variance `P₀`
after `n` independent measurements with noise variance `R`.

This definition packages the standard conjugate-Gaussian calculation. It does
not itself prove that a physical measurement process is Gaussian, independent,
or correctly modeled. -/
noncomputable def posteriorVariance (P₀ R : ℝ) (n : ℕ) : ℝ :=
  1 / (1 / P₀ + (n : ℝ) / R)

-- LeanTest/HardProblems/FeedbackBounds.lean
/-- Positive prior and measurement variances give positive posterior variance. -/
theorem posteriorVariance_pos {P₀ R : ℝ} (hP₀ : 0 < P₀) (hR : 0 < R)
    (n : ℕ) : 0 < posteriorVariance P₀ R n := by
  unfold posteriorVariance
  positivity

-- LeanTest/HardProblems/FeedbackBounds.lean
/-- Reaching target variance `D` under the scalar posterior formula requires
at least `R * (1 / D - 1 / P₀)` measurements. The right side is real-valued;
an integer ceiling would be needed for a sharp natural-number statement.

This is an algebraic consequence of the displayed variance formula. It is not
a general Kalman-filter theorem and says nothing about model mismatch, process
noise, correlated measurements, or unobservable state directions. -/
theorem target_accuracy_requires_observations {P₀ R D : ℝ} {n : ℕ}
    (hP₀ : 0 < P₀) (hR : 0 < R) (hD : 0 < D)
    (hacc : posteriorVariance P₀ R n ≤ D) :
    R * (1 / D - 1 / P₀) ≤ (n : ℝ) := by
  have hden : 0 < 1 / P₀ + (n : ℝ) / R := by positivity
  have hcross : 1 ≤ D * (1 / P₀ + (n : ℝ) / R) := by
    exact (div_le_iff₀ hden).mp hacc
  have hprecision : 1 / D ≤ 1 / P₀ + (n : ℝ) / R := by
    apply (div_le_iff₀ hD).2
    nlinarith
  have hremaining : 1 / D - 1 / P₀ ≤ (n : ℝ) / R := by
    linarith
  simpa [mul_comm] using (le_div_iff₀ hR).mp hremaining

-- LeanTest/HardProblems/FeedbackBounds.lean
/-- If the target variance is strictly smaller than the prior variance, the
observation-count lower bound above is strictly positive rather than vacuous. -/
theorem target_accuracy_nontrivial_bound {P₀ R D : ℝ} {n : ℕ}
    (hP₀ : 0 < P₀) (hR : 0 < R) (hD : 0 < D) (hDlt : D < P₀)
    (hacc : posteriorVariance P₀ R n ≤ D) :
    0 < R * (1 / D - 1 / P₀) ∧
      R * (1 / D - 1 / P₀) ≤ (n : ℝ) := by
  constructor
  · exact mul_pos hR (sub_pos.mpr (one_div_lt_one_div_of_lt hD hDlt))
  · exact target_accuracy_requires_observations hP₀ hR hD hacc

مرز. نتایج پالایش به افرازهای قطعی مربوط‌اند، نه آنتروپی، اطلاعات متقابل، بسندگی آماری یا کانال‌های تصادفی. نتیجهٔ بودجهٔ اطلاعات حساب نرده‌ای است: پردازش داده یا مقدمه‌ای از نرخ اعوجاج را ثابت نمی‌کند. نتیجهٔ پسین جبر نرده‌ای گاوسی را بسته‌بندی می‌کند؛ فضای احتمال، استقلال، بهینگی کالمن، نویز فرایند یا مشاهده‌پذیری را صورت‌بندی صوری نمی‌کند.

رابطهٔ بازگشتی مقاوم، تعویض و حاشیه‌های خطا

فرض‌ها. دنباله‌ای حقیقی از \(e_{n+1}\le(q_0+\mu)e_n+d\) پیروی می‌کند، \(q_0\)، \(\mu\) و \(d\) نامنفی‌اند و \(q_0+\mu<1\) است. در رابطهٔ بازگشتی نرده‌ای دوم، هر خطای نامنفی در ضریبی احتمالاً متغیر میان صفر و کران مشترک \(q_{\max}<1\) ضرب می‌شود و همان کران جمعی برقرار است. جداگانه، باقیماندهٔ معیوب مجموع \(r^f=r^h+f\) یک باقیماندهٔ سالم با نرم حداکثر \(\rho\) و یک نشانهٔ خطای جمع‌شونده است. هشدارها از آستانهٔ اکید \(\eta\) استفاده می‌کنند و نشانه‌های نامزد مراکز گوی‌های نرم بسته با شعاع نامنفی \(\rho\) هستند.

نتیجه. عدم تطابق از \(\mu<1-q_0\) پیروی می‌کند و هر خطای زمان‌متناهی زیر کران بالای مجموع گذرای هندسی و لولهٔ اغتشاش قرار می‌گیرد. قضیه‌ای جداگانه ناوردایی پیشروی شعاع \(d/(1-q)\) را هنگامی اثبات می‌کند که \(d\ge0\) و خطای آغازین از پیش درون آن باشد. زیر تغییر دلخواه ضریب نرده‌ای، کران بالای مشترک مجموع هندسی متناظر را می‌دهد و اگر اکیداً از یک کوچک‌تر باشد، همان کران گذرا و لوله با صورت بسته را نتیجه می‌دهد. آستانه‌ای دست‌کم برابر \(\rho\) روی هیچ باقیماندهٔ سالم مجاز هشدار نمی‌دهد؛ نرم خطایی بزرگ‌تر از \(\eta+\rho\) هشدار را تضمین می‌کند و در \(\eta=\rho\) شرط \(2\rho\) را به دست می‌دهد. هر باقیماندهٔ معیوب جمعیِ مجاز در گوی بسته‌ای قرار دارد که مرکزش نشانهٔ خطای آن است. گوی‌های نامزد که مراکزشان بیش از \(2\rho\) فاصله دارند مجزا هستند. (بررسی‌شده با ماشین)

Lean declarations and proofs (FaultMargins.lean, FeedbackBounds.lean): HardProblems.RobustFeedback.error_le_geometric_sum, HardProblems.RobustFeedback.error_le_tube_transient, HardProblems.RobustFeedback.error_le_tube, HardProblems.RobustFeedback.mismatch_le_margin_and_error_bound, HardProblems.FaultMargins.Alarm, HardProblems.FaultMargins.healthy_residual_not_alarm, HardProblems.FaultMargins.alarm_of_fault_norm_gt_threshold_add_radius, HardProblems.FaultMargins.alarm_of_fault_norm_gt_two_mul_radius, HardProblems.FaultMargins.faulted_residual_mem_closedBall, HardProblems.FaultMargins.closedBall_disjoint_of_norm_sub_gt_two_mul_radius, HardProblems.UniformSwitching.error_le_uniform_geometric_sum, HardProblems.UniformSwitching.error_le_uniform_tube_transientاجرا اجرا
-- LeanTest/HardProblems/FeedbackBounds.lean
/-- Iterating a scalar robust contraction gives a geometric finite-time bound.
The error need not be generated by any particular observer, but nonnegativity
of `q` is needed to propagate the upper inequality. -/
theorem error_le_geometric_sum (e : ℕ → ℝ) (q d : ℝ)
    (hq : 0 ≤ q) (hstep : ∀ n, e (n + 1) ≤ q * e n + d) (n : ℕ) :
    e n ≤ q ^ n * e 0 + d * ∑ k ∈ Finset.range n, q ^ k := by
  induction n with
  | zero => simp
  | succ n ih =>
      calc
        e (n + 1) ≤ q * e n + d := hstep n
        _ ≤ q * (q ^ n * e 0 + d * ∑ k ∈ Finset.range n, q ^ k) + d :=
          add_le_add (mul_le_mul_of_nonneg_left ih hq) le_rfl
        _ = q ^ (n + 1) * e 0 + d * ∑ k ∈ Finset.range (n + 1), q ^ k := by
          rw [geom_sum_succ]
          ring

-- LeanTest/HardProblems/FeedbackBounds.lean
/-- With a strict contraction, the geometric sum can be written using the
disturbance tube `d / (1 - q)`. This is a finite-time statement, not an
asymptotic optimality claim. -/
theorem error_le_tube_transient (e : ℕ → ℝ) (q d : ℝ)
    (hq0 : 0 ≤ q) (hq1 : q < 1)
    (hstep : ∀ n, e (n + 1) ≤ q * e n + d) (n : ℕ) :
    e n ≤ q ^ n * (e 0 - d / (1 - q)) + d / (1 - q) := by
  have hqne : q ≠ 1 := ne_of_lt hq1
  have hbound := error_le_geometric_sum e q d hq0 hstep n
  rw [geom_sum_eq hqne n] at hbound
  calc
    e n ≤ q ^ n * e 0 + d * ((q ^ n - 1) / (q - 1)) := hbound
    _ = q ^ n * (e 0 - d / (1 - q)) + d / (1 - q) := by
      field_simp [sub_ne_zero.mpr hqne, sub_ne_zero.mpr hqne.symm]
      ring

-- LeanTest/HardProblems/FeedbackBounds.lean
/-- The disturbance tube is forward invariant: if the initial error is below
`d / (1 - q)`, every later error remains below it. The assumption `0 ≤ d`
makes the displayed radius nonnegative; it is not needed merely for the upper
inequality but records its intended error-bound interpretation. -/
theorem error_le_tube (e : ℕ → ℝ) (q d : ℝ)
    (hq0 : 0 ≤ q) (hq1 : q < 1) (hd : 0 ≤ d)
    (hstep : ∀ n, e (n + 1) ≤ q * e n + d)
    (hinit : e 0 ≤ d / (1 - q)) (n : ℕ) :
    0 ≤ d / (1 - q) ∧ e n ≤ d / (1 - q) := by
  constructor
  · exact div_nonneg hd (sub_nonneg.mpr (le_of_lt hq1))
  · have hpow : 0 ≤ q ^ n := pow_nonneg hq0 n
    have htransient := error_le_tube_transient e q d hq0 hq1 hstep n
    have hdiff : e 0 - d / (1 - q) ≤ 0 := sub_nonpos.mpr hinit
    have hnonpos : q ^ n * (e 0 - d / (1 - q)) ≤ 0 :=
      mul_nonpos_of_nonneg_of_nonpos hpow hdiff
    linarith

-- LeanTest/HardProblems/FeedbackBounds.lean
/-- Writing the effective contraction factor as `q₀ + μ` makes the robustness
margin explicit. A certified mismatch `μ` must remain below `1 - q₀`; under
that hypothesis the same finite-time disturbance-tube bound applies.

The result does not say that `μ` is a universal metric on model difference.
An observer analysis must first justify that the actual mismatch contributes
at most `μ` to this scalar one-step estimate. -/
theorem mismatch_le_margin_and_error_bound (e : ℕ → ℝ) (q₀ μ d : ℝ)
    (hq₀ : 0 ≤ q₀) (hμ : 0 ≤ μ) (hmargin : q₀ + μ < 1)
    (hstep : ∀ n, e (n + 1) ≤ (q₀ + μ) * e n + d) (n : ℕ) :
    μ < 1 - q₀ ∧
      e n ≤ (q₀ + μ) ^ n * (e 0 - d / (1 - q₀ - μ)) +
        d / (1 - q₀ - μ) := by
  constructor
  · linarith
  · have hq : 0 ≤ q₀ + μ := add_nonneg hq₀ hμ
    simpa [sub_sub] using
      error_le_tube_transient e (q₀ + μ) d hq hmargin hstep n

-- LeanTest/HardProblems/FaultMargins.lean
/-- A strict deterministic threshold test on a residual. Equality with the
threshold does not raise an alarm. -/
def Alarm (η : ℝ) (residual : E) : Prop :=
  η < ‖residual‖

-- LeanTest/HardProblems/FaultMargins.lean
/-- A residual certified inside the healthy radius cannot cross a threshold
that is at least that radius. This is a pointwise deterministic statement, not
a probabilistic false-alarm guarantee. -/
theorem healthy_residual_not_alarm {healthy : E} {ρ η : ℝ}
    (hhealthy : ‖healthy‖ ≤ ρ) (hthreshold : ρ ≤ η) :
    ¬ Alarm η healthy := by
  exact not_lt_of_ge (hhealthy.trans hthreshold)

-- LeanTest/HardProblems/FaultMargins.lean
/-- Reverse-triangle geometry for an additive fault: if the fault norm exceeds
the threshold plus the healthy-radius allowance, every admitted healthy
residual forces an alarm. The condition is sufficient, not necessary. -/
theorem alarm_of_fault_norm_gt_threshold_add_radius
    {healthy fault : E} {ρ η : ℝ}
    (hhealthy : ‖healthy‖ ≤ ρ) (hfault : η + ρ < ‖fault‖) :
    Alarm η (healthy + fault) := by
  have hreverse : ‖fault‖ ≤ ‖healthy + fault‖ + ‖healthy‖ := by
    calc
      ‖fault‖ = ‖(healthy + fault) - healthy‖ := by
        congr 1
        abel
      _ ≤ ‖healthy + fault‖ + ‖healthy‖ := norm_sub_le _ _
  unfold Alarm
  linarith

-- LeanTest/HardProblems/FaultMargins.lean
/-- At the smallest threshold certified from the declared healthy-radius bound
alone, `η = ρ`, the familiar separation condition is
`2 * ρ < ‖fault‖`. It still asserts only guaranteed detection under that
deterministic radius. -/
theorem alarm_of_fault_norm_gt_two_mul_radius
    {healthy fault : E} {ρ : ℝ}
    (hhealthy : ‖healthy‖ ≤ ρ) (hfault : 2 * ρ < ‖fault‖) :
    Alarm ρ (healthy + fault) := by
  apply alarm_of_fault_norm_gt_threshold_add_radius hhealthy
  simpa [two_mul] using hfault

-- LeanTest/HardProblems/FaultMargins.lean
/-- An additive faulted residual lies in the closed residual ball centered at
its fault signature whenever the healthy component lies inside the declared
radius. -/
theorem faulted_residual_mem_closedBall {healthy fault : E} {ρ : ℝ}
    (hhealthy : ‖healthy‖ ≤ ρ) :
    healthy + fault ∈ Metric.closedBall fault ρ := by
  rw [Metric.mem_closedBall, dist_eq_norm]
  simpa [add_sub_cancel_right]

-- LeanTest/HardProblems/FaultMargins.lean
/-- Closed candidate residual balls of common radius are disjoint when their
fault centers are separated by more than twice that radius. This supplies a
deterministic isolation margin for these two declared candidates; it does not
show that the candidate list is exhaustive or statistically identifiable.
The explicit nonnegativity hypothesis rules out vacuous negative-radius
balls. -/
theorem closedBall_disjoint_of_norm_sub_gt_two_mul_radius
    {fault₁ fault₂ : E} {ρ : ℝ}
    (hρ : 0 ≤ ρ) (hseparated : 2 * ρ < ‖fault₁ - fault₂‖) :
    Disjoint (Metric.closedBall fault₁ ρ) (Metric.closedBall fault₂ ρ) := by
  rw [Set.disjoint_left]
  intro residual hmem₁ hmem₂
  have h₁ : dist fault₁ residual ≤ ρ := by
    simpa [dist_comm] using (Metric.mem_closedBall.mp hmem₁)
  have h₂ : dist residual fault₂ ≤ ρ :=
    Metric.mem_closedBall.mp hmem₂
  have htriangle : dist fault₁ fault₂ ≤ dist fault₁ residual + dist residual fault₂ :=
    dist_triangle _ _ _
  have h₁max : dist fault₁ residual ≤ max ρ 0 :=
    h₁.trans (le_max_left _ _)
  have h₂max : dist residual fault₂ ≤ max ρ 0 :=
    h₂.trans (le_max_left _ _)
  have hcentersMax : ‖fault₁ - fault₂‖ ≤ 2 * max ρ 0 := by
    rw [← dist_eq_norm]
    linarith
  have hcenters : ‖fault₁ - fault₂‖ ≤ 2 * ρ := by
    simpa [max_eq_left hρ] using hcentersMax
  linarith

-- LeanTest/HardProblems/FaultMargins.lean
/-- A scalar recurrence may switch its nonnegative contraction factor at every
step and still obey the constant geometric bound for a declared uniform upper
factor. Nonnegativity of the error is what permits replacing each active factor
by the uniform upper bound.

This extends the constant-factor recurrence in `RobustFeedback`; it does not
establish that a switched observer or plant satisfies the scalar hypotheses. -/
theorem error_le_uniform_geometric_sum
    (e q : ℕ → ℝ) (qMax d : ℝ)
    (hqMax : 0 ≤ qMax)
    (hq : ∀ n, 0 ≤ q n ∧ q n ≤ qMax)
    (he : ∀ n, 0 ≤ e n)
    (hstep : ∀ n, e (n + 1) ≤ q n * e n + d)
    (n : ℕ) :
    e n ≤ qMax ^ n * e 0 + d * ∑ k ∈ Finset.range n, qMax ^ k := by
  apply RobustFeedback.error_le_geometric_sum e qMax d hqMax
  intro k
  calc
    e (k + 1) ≤ q k * e k + d := hstep k
    _ ≤ qMax * e k + d :=
      add_le_add (mul_le_mul_of_nonneg_right (hq k).2 (he k)) le_rfl

-- LeanTest/HardProblems/FaultMargins.lean
/-- Under a strict uniform contraction bound, arbitrary switching obeys the
same closed-form disturbance-tube transient as the constant-factor recurrence.
The theorem gives an upper certificate under uniform scalar hypotheses; it
does not establish those hypotheses for a particular switched system. -/
theorem error_le_uniform_tube_transient
    (e q : ℕ → ℝ) (qMax d : ℝ)
    (hqMax0 : 0 ≤ qMax) (hqMax1 : qMax < 1)
    (hq : ∀ n, 0 ≤ q n ∧ q n ≤ qMax)
    (he : ∀ n, 0 ≤ e n)
    (hstep : ∀ n, e (n + 1) ≤ q n * e n + d)
    (n : ℕ) :
    e n ≤ qMax ^ n * (e 0 - d / (1 - qMax)) + d / (1 - qMax) := by
  apply RobustFeedback.error_le_tube_transient e qMax d hqMax0 hqMax1
  intro k
  calc
    e (k + 1) ≤ q k * e k + d := hstep k
    _ ≤ qMax * e k + d :=
      add_le_add (mul_le_mul_of_nonneg_right (hq k).2 (he k)) le_rfl

مرز. این‌ها قضیه‌های مقایسه‌ای نرده‌ای و هندسهٔ قطعی نرم‌اند. مشاهده‌گری غیرخطی نمی‌سازند، نامساوی یک‌گامی آن را ثابت نمی‌کنند و متریک لیاپانوف مشترکی برای فرایند تعویض‌شونده فراهم نمی‌آورند. نرخ‌های احتمالی هشدار کاذب، کران‌های لازم آشکارسازی، کامل‌بودن فهرست خطاها یا الگوریتم تشخیص را ثابت نمی‌کنند. گذشتن از حاشیه‌ای کافی گواهی را از میان می‌برد؛ واگرایی را ثابت نمی‌کند. لوله تضمینی بالاست، نه کران پایین دقت یا ادعای بهینگی.

هم‌ارزی مشاهداتی و کنش مقاوم

فرض‌ها. سامانه‌ای تصادفی و با مشاهدهٔ جزئی، هسته‌های گذار و مشاهده دارد. سیاست‌ها تاریخچه‌های متناهی مشاهده را به توزیع‌های کنش نگاشت می‌کنند. دو حالت آغازین هنگامی هم‌ارزند که هر سیاست از این نوع و هر افق متناهی، قانون یکسانی از تاریخچه‌های مشاهده القا کند. هر حالت مجموعه‌ای از کنش‌های پذیرفتنی دارد. به‌طور جداگانه، در یک فضای حالت شبه‌متریک، یک مسیر برآوردی به هر دو مسیر حالت همگرا می‌شود.

نتیجه. هم‌ارزی مشاهداتی یک رابطهٔ هم‌ارزی است. کنش‌های مقاوم و پذیرفتنی در یک حالت، اشتراک مجموعه‌های پذیرفتنی روی ردهٔ هم‌ارزی آن‌اند. کنش مقاوم دقیقاً هنگامی ناممکن است که این اشتراک کلی تهی باشد؛ یک جفت مجزا شاهدی کافی است. اگر یک برآورد به هر دو مسیر حالت همگرا شود، فاصلهٔ متقابل آن دو به صفر همگرا می‌شود. آزمایشی با کنش ثابت حالت خاصی از کاوش سازگارشونده است، و زوجی صریح از مدل‌های بولی زیر یک کنش منفعل در هر افقی توافق دارند اما یک کاوش مجاز آن‌ها را جدا می‌کند. (بررسی‌شده با ماشین)

Lean declarations and proofs (Observability.lean, SystemsTheory.lean): HardProblems.PassivelyDistinguishable, HardProblems.ProbeDistinguishable, HardProblems.passively_imp_probe, HardProblems.exists_probe_only_distinguishable, HardProblems.ObsEquiv, HardProblems.obsEquiv_equivalence, HardProblems.common_estimate_forces_pairwise_convergence, HardProblems.DecisionCritical, HardProblems.RobustAcceptable, HardProblems.robustSet_eq_iInter, HardProblems.RobustlyInfeasible, HardProblems.robustlyInfeasible_iff_iInter_eq_empty, HardProblems.DecisionCritical.no_robust_actionاجرا اجرا
-- LeanTest/HardProblems/SystemsTheory.lean
/-- Two models are distinguishable from `s` under the constant action `a₀`
when their observation-history laws differ at some horizon. The type does not
assert that `a₀` is inert; that interpretation is supplied by an application. -/
def PassivelyDistinguishable (M₁ M₂ : POSystem S A O) (a₀ : A) (s : S) : Prop :=
  ∃ n, obsProcess M₁ (fun _ => PMF.pure a₀) n s [] ≠
        obsProcess M₂ (fun _ => PMF.pure a₀) n s []

-- LeanTest/HardProblems/SystemsTheory.lean
/-- Two models are probe distinguishable from `s` when some policy of the
declared function type separates their observation-history laws. -/
def ProbeDistinguishable (M₁ M₂ : POSystem S A O) (s : S) : Prop :=
  ∃ (π : List O → PMF A) (n : ℕ),
    obsProcess M₁ π n s [] ≠ obsProcess M₂ π n s []

-- LeanTest/HardProblems/SystemsTheory.lean
/-- A constant-action policy is a special case of an observation-dependent
policy. -/
theorem passively_imp_probe {M₁ M₂ : POSystem S A O} {a₀ : A} {s : S}
    (h : PassivelyDistinguishable M₁ M₂ a₀ s) : ProbeDistinguishable M₁ M₂ s :=
  let ⟨n, hn⟩ := h
  ⟨fun _ => PMF.pure a₀, n, hn⟩

-- LeanTest/HardProblems/SystemsTheory.lean
/-- There are two Boolean models whose laws agree under the constant action
`false` at every horizon but differ under the constant action `true`. In these
witness models, `false` is inert and `true` changes one model only. -/
theorem exists_probe_only_distinguishable :
    ∃ (M₁ M₂ : POSystem Bool Bool Bool) (s : Bool),
      ¬ PassivelyDistinguishable M₁ M₂ false s ∧ ProbeDistinguishable M₁ M₂ s := by
  refine ⟨flipModel, inertModel, false, ?_, ?_⟩
  · rintro ⟨n, hn⟩
    exact hn (obsProcess_congr_null flipModel inertModel false rfl
      (fun s => by simp [flipModel, inertModel]) n false [])
  · refine ⟨fun _ => PMF.pure true, 2, ?_⟩
    have h₁ : obsProcess flipModel (fun _ => PMF.pure true) 2 false [] =
        PMF.pure [false, true] := by
      simp [obsProcess, flipModel, PMF.pure_bind]
    have h₂ : obsProcess inertModel (fun _ => PMF.pure true) 2 false [] =
        PMF.pure [false, false] := by
      simp [obsProcess, inertModel, PMF.pure_bind]
    rw [h₁, h₂]
    intro hcontra
    have := congrArg (fun p => p [false, true]) hcontra
    simp [PMF.pure_apply] at this

-- LeanTest/HardProblems/Observability.lean
/-- Observational equivalence: no policy of the declared function type
distinguishes the two states at any finite horizon. -/
def ObsEquiv (M : POSystem S A O) (s s' : S) : Prop :=
  ∀ (π : List O → PMF A) (n : ℕ), obsProcess M π n s [] = obsProcess M π n s' []

-- LeanTest/HardProblems/Observability.lean
/-- Observational equivalence is an equivalence relation, as the notation
`≡` silently promises. -/
theorem obsEquiv_equivalence (M : POSystem S A O) : Equivalence (ObsEquiv M) where
  refl _ := fun _ _ => rfl
  symm h := fun π n => (h π n).symm
  trans h₁ h₂ := fun π n => (h₁ π n).trans (h₂ π n)

-- LeanTest/HardProblems/Observability.lean
/-- A necessary metric condition for asymptotic reconstruction: if the same
estimate converges to each of two state trajectories, their mutual distance
converges to zero. To turn this into a detectability theorem, a system-specific
argument must show that observationally indistinguishable trajectories really
feed the same estimate. -/
theorem common_estimate_forces_pairwise_convergence
    {X : Type*} [PseudoMetricSpace X] (x₁ x₂ xhat : ℕ → X)
    (h₁ : Tendsto (fun t => dist (x₁ t) (xhat t)) atTop (𝓝 0))
    (h₂ : Tendsto (fun t => dist (x₂ t) (xhat t)) atTop (𝓝 0)) :
    Tendsto (fun t => dist (x₁ t) (x₂ t)) atTop (𝓝 0) := by
  refine squeeze_zero (fun _ => dist_nonneg) (fun t => dist_triangle _ (xhat t) _) ?_
  have h₂' : Tendsto (fun t => dist (xhat t) (x₂ t)) atTop (𝓝 0) :=
    h₂.congr' (Eventually.of_forall fun t => dist_comm (x₂ t) (xhat t))
  simpa only [zero_add] using h₁.add h₂'

-- LeanTest/HardProblems/Observability.lean
/-- Decision-critical ambiguity: two observationally equivalent states whose
acceptable-action sets `A*_M` are disjoint. -/
def DecisionCritical (M : POSystem S A O) (Astar : S → Set A) (s s' : S) : Prop :=
  ObsEquiv M s s' ∧ Disjoint (Astar s) (Astar s')

-- LeanTest/HardProblems/Observability.lean
/-- An action is robust at `s` when it is acceptable in every state
observationally equivalent to `s`. -/
def RobustAcceptable (M : POSystem S A O) (Astar : S → Set A) (s : S) (a : A) : Prop :=
  ∀ s', ObsEquiv M s s' → a ∈ Astar s'

-- LeanTest/HardProblems/Observability.lean
/-- Robust actions are exactly the intersection of the acceptable sets over
the equivalence class of `s`. -/
theorem robustSet_eq_iInter (M : POSystem S A O) (Astar : S → Set A) (s : S) :
    {a | RobustAcceptable M Astar s a} = ⋂ s' ∈ {s' | ObsEquiv M s s'}, Astar s' := by
  ext a
  simp [RobustAcceptable]

-- LeanTest/HardProblems/Observability.lean
/-- Robust choice is infeasible when no action is acceptable throughout the
observational equivalence class. -/
def RobustlyInfeasible (M : POSystem S A O) (Astar : S → Set A) (s : S) : Prop :=
  ¬ ∃ a, RobustAcceptable M Astar s a

-- LeanTest/HardProblems/Observability.lean
/-- The exact criterion for robust infeasibility is emptiness of the total
intersection of acceptable-action sets over the observational class. Pairwise
disjointness is sufficient but not necessary for this intersection to be empty. -/
theorem robustlyInfeasible_iff_iInter_eq_empty
    (M : POSystem S A O) (Astar : S → Set A) (s : S) :
    RobustlyInfeasible M Astar s ↔
      ⋂ s' ∈ {s' | ObsEquiv M s s'}, Astar s' = ∅ := by
  rw [← robustSet_eq_iInter]
  change (¬ ({a | RobustAcceptable M Astar s a} : Set A).Nonempty) ↔ _
  exact Set.not_nonempty_iff_eq_empty

-- LeanTest/HardProblems/Observability.lean
/-- A disjoint observationally equivalent pair certifies that no robust action
exists at the first state. -/
theorem DecisionCritical.no_robust_action
    {M : POSystem S A O} {Astar : S → Set A} {s s' : S}
    (h : DecisionCritical M Astar s s') :
    ¬∃ a, RobustAcceptable M Astar s a := by
  rintro ⟨a, ha⟩
  have h₁ : a ∈ Astar s := ha s ((obsEquiv_equivalence M).refl s)
  have h₂ : a ∈ Astar s' := ha s' h.1
  exact Set.disjoint_left.mp h.2 h₁ h₂

مرز. فضای صوری سیاست هر تابعی از نوع بیان‌شده را دربر می‌گیرد، نه فقط آزمایش‌هایی را که بتوان به‌طور کارآمد اجرا کرد. اشتراک‌های دوتایی الزاماً اشتراک کلی ناتهی نتیجه نمی‌دهند. قضیه فرض می‌کند هسته‌ها همان مدل مربوط‌اند. نتیجهٔ متریکی فقط شرطی لازم برای یک مشاهده‌گر مشترک و درست در حد مجانبی است. تاریخچه‌های خروجی هموار را به هم‌ارزی تصادفی صوری پیوند نمی‌دهد و وجود چنین مشاهده‌گری را ثابت نمی‌کند. مثال نقض کاوش فعال دو مدل را مقایسه می‌کند و نه طراحی کاوش را حل می‌کند و نه آزمایش اطلاع‌بخش کمینه‌ای به دست می‌دهد.

دسترس‌پذیری، موانع و میان‌برهای پشتوانه‌دار

فرض‌ها. اثرگذارهای قطعی دسترس‌پذیری با ترکیب متناهی را پدید می‌آورند. رابطهٔ مجاورت جهت‌دار و هدف حقیقی، عمق مسیر متناهی و مانع حاصل از بزرگ‌ترین کران پایین آن را تعریف می‌کنند. رابطهٔ میان‌بر به مسیرهای اصلی‌ای متکی است که امتیازشان از کران لازم نقاط پایانی پایین‌تر نمی‌رود.

نتیجه. افزودن تبدیل برنامه‌ریزی‌شدهٔ نقطه‌به‌نقطه مجموعه‌های دسترس‌پذیر را تغییر نمی‌دهد، درحالی‌که تبدیلی واقعاً تازه در مثالی متناهی و صریح می‌تواند یکی از آن‌ها را گسترش دهد. نبود هرگونه مسیر مانع بی‌نهایت می‌دهد؛ مسیر یکنواخت مانع صفر می‌دهد؛ مانع مثبت افت را در طول هر مسیر موجود اجبار می‌کند. میان‌برهای دارای پشتوانهٔ مناسب عمق مانع را حفظ می‌کنند، اما پشتوانهٔ صرفاً مبتنی بر نقاط پایانی ممکن است شکست بخورد. (بررسی‌شده با ماشین)

Lean declarations and proofs (BoundedMachines.lean, Ruggedness.lean): HardProblems.Reach, HardProblems.traj_mem_reach, HardProblems.Programmed, HardProblems.reach_insert_programmed, HardProblems.exists_new_effector_enlarges_reach, HardProblems.PathBetween, HardProblems.barrier, HardProblems.exists_dip_of_barrier_pos, HardProblems.barrier_eq_top_of_no_path, HardProblems.barrier_eq_zero_of_monotone_path, HardProblems.barrier_lt_iff, HardProblems.pathBetween_shortcut_nonempty_iff, HardProblems.barrier_shortcut_eq, HardProblems.exists_shortcut_hiding_valleyاجرا اجرا
-- LeanTest/HardProblems/BoundedMachines.lean
/-- Finite-composition reachability: `y` is reachable from `x` by
applying effectors drawn from `G`. -/
inductive Reach (G : Set (X → X)) (x : X) : X → Prop
  | refl : Reach G x x
  | tail : ∀ {y z : X} {g : X → X}, Reach G x y → g ∈ G → z = g y → Reach G x z

-- LeanTest/HardProblems/BoundedMachines.lean
/-- Any admissible trajectory stays inside the reachable set: at each
step some effector in `G` was applied, chosen by an arbitrary policy,
and no choice rule ever escapes the orbit. -/
theorem traj_mem_reach (G : Set (X → X)) (σ : ℕ → X)
    (hstep : ∀ n, ∃ g ∈ G, σ (n + 1) = g (σ n)) (n : ℕ) :
    Reach G (σ 0) (σ n) := by
  induction n with
  | zero => exact Reach.refl
  | succ n ih =>
      obtain ⟨g, hg, heq⟩ := hstep n
      exact Reach.tail ih hg heq

-- LeanTest/HardProblems/BoundedMachines.lean
/-- Pointwise realizability over `G`: from every state, the image under `g` is
already reachable with `G`. The definition supplies neither a uniform generator
word nor a computable dispatcher for the witnessing paths. -/
def Programmed (G : Set (X → X)) (g : X → X) : Prop :=
  ∀ y : X, Reach G y (g y)

-- LeanTest/HardProblems/BoundedMachines.lean
/-- Inserting a pointwise realizable transformation as a primitive leaves every
reachability orbit unchanged. -/
theorem reach_insert_programmed (G : Set (X → X)) {g : X → X}
    (hg : Programmed G g) (x z : X) :
    Reach (insert g G) x z ↔ Reach G x z := by
  constructor
  · intro h
    induction h with
    | refl => exact Reach.refl
    | @tail y z f hy hmem heq ih =>
        rcases hmem with (rfl | hmem)
        · rw [heq]
          exact Reach.trans ih (hg y)
        · exact Reach.tail ih hmem heq
  · intro h
    induction h with
    | refl => exact Reach.refl
    | tail hy hmem heq ih =>
        exact Reach.tail ih (Set.mem_insert_of_mem g hmem) heq

-- LeanTest/HardProblems/BoundedMachines.lean
/-- A transformation outside the prior reachability closure can strictly
enlarge reach in an explicit two-state example. -/
theorem exists_new_effector_enlarges_reach :
    ∃ (G : Set (Bool → Bool)) (g : Bool → Bool) (x z : Bool),
      Reach (insert g G) x z ∧ ¬ Reach G x z := by
  refine ⟨∅, Bool.not, false, true, ?_, ?_⟩
  · exact Reach.tail Reach.refl (Set.mem_insert _ _) rfl
  · intro h
    cases h with
    | tail hy hmem heq => exact hmem.elim

-- LeanTest/HardProblems/Ruggedness.lean
/-- An admissible path in the configuration graph `Adj`, from `x` to `y`,
recorded as its list of visited configurations. -/
structure PathBetween (Adj : X → X → Prop) (x y : X) where
  points : List X
  head_eq : points.head? = some x
  last_eq : points.getLast? = some y
  admissible : points.IsChain Adj

-- LeanTest/HardProblems/Ruggedness.lean
/-- Barrier height from `x` to `y`: the infimum, over admissible paths, of the
deepest dip below `J x` along the path (dips measured in `ℝ≥0∞`, so paths
that never dip contribute `0`). Empty infimum is `⊤`: no path, infinite
barrier. -/
noncomputable def barrier (Adj : X → X → Prop) (J : X → ℝ) (x y : X) : ℝ≥0∞ :=
  ⨅ γ : PathBetween Adj x y, ⨆ z ∈ γ.points, ENNReal.ofReal (J x - J z)

-- LeanTest/HardProblems/Ruggedness.lean
/-- A positive barrier means every admissible route to `y` contains a
configuration strictly worse than the start. No hypothesis here says that `y`
is better than the start or that the dip occurs before first reaching `y`. -/
theorem exists_dip_of_barrier_pos {Adj : X → X → Prop} {J : X → ℝ} {x y : X}
    (h : 0 < barrier Adj J x y) (γ : PathBetween Adj x y) :
    ∃ z ∈ γ.points, J z < J x := by
  have hγ : 0 < ⨆ z ∈ γ.points, ENNReal.ofReal (J x - J z) :=
    lt_of_lt_of_le h (iInf_le _ γ)
  obtain ⟨z, hz⟩ := lt_iSup_iff.mp hγ
  obtain ⟨hmem, hpos⟩ := lt_iSup_iff.mp hz
  refine ⟨z, hmem, ?_⟩
  have := ENNReal.ofReal_pos.mp hpos
  linarith

-- LeanTest/HardProblems/Ruggedness.lean
/-- No admissible path at all makes the barrier infinite. -/
theorem barrier_eq_top_of_no_path {Adj : X → X → Prop} {J : X → ℝ} {x y : X}
    (h : IsEmpty (PathBetween Adj x y)) :
    barrier Adj J x y = ⊤ :=
  iInf_of_empty _

-- LeanTest/HardProblems/Ruggedness.lean
/-- If some admissible path never dips below the start value, the barrier
vanishes: the converse companion to `exists_dip_of_barrier_pos`. (Also
proved independently by Harmonic's Aristotle prover; see `aristotle/`.) -/
theorem barrier_eq_zero_of_monotone_path {Adj : X → X → Prop} {J : X → ℝ}
    {x y : X} (γ : PathBetween Adj x y) (hγ : ∀ z ∈ γ.points, J x ≤ J z) :
    barrier Adj J x y = 0 := by
  refine le_antisymm ?_ zero_le
  refine le_trans (iInf_le _ γ) ?_
  refine iSup_le fun z => iSup_le fun hz => ?_
  simp [ENNReal.ofReal_eq_zero, hγ z hz]

-- LeanTest/HardProblems/Ruggedness.lean
/-- The barrier sits strictly below `d` exactly when some admissible path
keeps every dip strictly below `d`. The backward direction uses the
finiteness of a path's point list: finitely many quantities each below `d`
have supremum below `d`. -/
theorem barrier_lt_iff {Adj : X → X → Prop} {J : X → ℝ} {x y : X}
    {d : ℝ≥0∞} :
    barrier Adj J x y < d ↔
      ∃ γ : PathBetween Adj x y, ∀ z ∈ γ.points,
        ENNReal.ofReal (J x - J z) < d := by
  constructor
  · intro h
    obtain ⟨γ, hγ⟩ := iInf_lt_iff.1 h
    exact ⟨γ, fun z hz =>
      lt_of_le_of_lt (le_biSup (fun z => ENNReal.ofReal (J x - J z)) hz) hγ⟩
  · rintro ⟨γ, hγ⟩
    have hx : x ∈ γ.points := List.mem_of_mem_head? γ.head_eq
    have hd : 0 < d := lt_of_le_of_lt zero_le (hγ x hx)
    exact lt_of_le_of_lt (iInf_le _ γ) (biSup_list_lt _ hd γ.points hγ)

-- LeanTest/HardProblems/Ruggedness.lean
/-- Reachability form: shortcuts backed by mere admissible paths do not
change what is reachable. -/
theorem pathBetween_shortcut_nonempty_iff {Adj S : X → X → Prop}
    (hback : ∀ u w, S u w → Nonempty (PathBetween Adj u w)) (x y : X) :
    Nonempty (PathBetween (fun a b => Adj a b ∨ S a b) x y) ↔
      Nonempty (PathBetween Adj x y) := by
  constructor
  · rintro ⟨γ⟩
    have hback' : ∀ u w, S u w → ∃ δ : PathBetween Adj u w,
        ∀ z ∈ δ.points, min ((fun _ : X => (0 : ℝ)) u) ((fun _ : X => (0 : ℝ)) w)
          ≤ (fun _ : X => (0 : ℝ)) z := by
      intro u w h
      obtain ⟨δ⟩ := hback u w h
      exact ⟨δ, fun _ _ => by simp⟩
    obtain ⟨γ', -⟩ := exists_splice hback' γ
    exact ⟨γ'⟩
  · rintro ⟨γ⟩
    exact ⟨γ.inl⟩

-- LeanTest/HardProblems/Ruggedness.lean
/-- Sufficient barrier certificate: shortcuts whose witnesses never dip below
the lower of their endpoints leave every barrier height unchanged. The theorem
does not claim that this certificate is necessary. -/
theorem barrier_shortcut_eq {Adj S : X → X → Prop} {J : X → ℝ}
    (hback : ∀ u w, S u w → ∃ γ : PathBetween Adj u w,
      ∀ z ∈ γ.points, min (J u) (J w) ≤ J z) (x y : X) :
    barrier (fun a b => Adj a b ∨ S a b) J x y = barrier Adj J x y := by
  refine le_antisymm (le_iInf fun γ => ?_) (le_iInf fun γ => ?_)
  · exact iInf_le_of_le γ.inl le_rfl
  · obtain ⟨γ', hγ'⟩ := exists_splice hback γ
    refine iInf_le_of_le γ' (iSup_le fun z => iSup_le fun hz => ?_)
    obtain ⟨p, hp, hple⟩ := hγ' z hz
    have key : ENNReal.ofReal (J x - J z) ≤ ENNReal.ofReal (J x - J p) :=
      ENNReal.ofReal_le_ofReal (by linarith)
    exact key.trans (le_biSup (fun p => ENNReal.ofReal (J x - J p)) hp)

-- LeanTest/HardProblems/Ruggedness.lean
/-- Mere `Nonempty` backing is insufficient for barrier preservation: a
shortcut can hide a valley. On the
two-step chain with a dip in the middle, admitting the backed shortcut
`0 → 2` drops the barrier from `ENNReal.ofReal 1` to `0`. This does not show
that the sufficient depth condition of `barrier_shortcut_eq` is necessary. -/
theorem exists_shortcut_hiding_valley :
    ∃ (Adj S : Fin 3 → Fin 3 → Prop) (J : Fin 3 → ℝ),
      (∀ u w, S u w → Nonempty (PathBetween Adj u w)) ∧
      ∃ x y : Fin 3,
        barrier (fun a b => Adj a b ∨ S a b) J x y < barrier Adj J x y := by
  refine ⟨hideAdj, hideS, hideJ, ?_, 0, 2, ?_⟩
  · intro u w huw
    obtain ⟨rfl, rfl⟩ : u = 0 ∧ w = 2 := huw
    refine ⟨⟨[0, 1, 2], rfl, rfl, ?_⟩⟩
    refine List.isChain_cons_cons.2 ⟨Or.inl ⟨rfl, rfl⟩, ?_⟩
    exact List.isChain_cons_cons.2 ⟨Or.inr ⟨rfl, rfl⟩, List.isChain_singleton _⟩
  · have hunion : barrier (fun a b => hideAdj a b ∨ hideS a b) hideJ 0 2 = 0 := by
      refine barrier_eq_zero_of_monotone_path ⟨[0, 2], rfl, rfl, ?_⟩ ?_
      · exact List.isChain_cons_cons.2 ⟨Or.inr ⟨rfl, rfl⟩, List.isChain_singleton _⟩
      · intro z hz
        have hz' : z = 0 ∨ z = 2 := by simpa using hz
        rcases hz' with rfl | rfl
        · exact le_rfl
        · rw [hideJ_zero, hideJ_two]
    have hlow : ENNReal.ofReal 1 ≤ barrier hideAdj hideJ 0 2 := by
      refine le_iInf fun γ => ?_
      have hmem : (1 : Fin 3) ∈ γ.points := one_mem_of_path γ
      have hval : ENNReal.ofReal 1 = ENNReal.ofReal (hideJ 0 - hideJ 1) := by
        rw [hideJ_zero, hideJ_one]; norm_num
      rw [hval]
      exact le_biSup (fun z => ENNReal.ofReal (hideJ 0 - hideJ z)) hmem
    rw [hunion]
    exact lt_of_lt_of_le (ENNReal.ofReal_pos.mpr one_pos) hlow

مرز. برنامه‌ریزی نقطه‌به‌نقطه الزاماً کلان‌دستوری یکنواخت و محاسبه‌پذیر نمی‌دهد. عمق مانع زمان جست‌وجو یا هزینهٔ کل پیمایش نیست. حفظ میان‌بر فقط برای ویژگی مسیری برقرار است که شاهد شده است.

رفتار، ایمنی و ناوردایی مختصاتی

فرض‌ها. رفتار مجموعه‌ای از مسیرها روی فضای سیگنال اعلام‌شده است. پس از هم‌ترازشدن رابط مؤلفه‌ها، اتصال متقابل همان اشتراک است و پنهان‌سازی تصویر مستقیم زیر یک نگاشت سیگنال است. اجراهای گسسته از نگاشت گام قطعی پیروی می‌کنند. توابع سیگنال محلی روی هم‌پوشانی‌ها توافق دارند. جداگانه، هم‌ارزی فضاهای حالت قطعی هر گذار نمایه‌گذاری‌شده با ورودی را مزدوج می‌کند و هرجا لازم باشد خروجی‌ها، مجاورت و هدف را منتقل می‌کند.

نتیجه. پنهان‌سازی یک اتصال متقابل زیرمجموعهٔ اتصال متقابل رفتارهای پنهان‌شده است و یک مثال متناهی صریح شمول را اکید می‌کند. ایمنی دیدنی پس از پنهان‌سازی دقیقاً همان ایمنی محمول پس‌کشیده است. برای رفتاری که از یک مجموعهٔ امن تولید می‌شود، ایمنی در همهٔ زمان‌ها با ناوردایی یک‌گامی هم‌ارز است. رفتار تهی امن است اما زیست‌پذیر نیست. توابع خام سازگار چسبانش یکتایی دارند، اما یک قید صریح و ناتهی پذیرش می‌تواند آن را رد کند. زیر هم‌ارزی دقیق مختصاتی، اجراها جابه‌جا می‌شوند، تمایزناپذیری مشاهداتی حفظ می‌شود، مجموعه‌های دسترس‌پذیر متناظرند و مقادیر منتقل‌شدهٔ مانع برابرند. (بررسی‌شده با ماشین)

Lean declarations and proofs (Behavioral.lean, Representation.lean): HardProblems.Behavioral.Trajectory, HardProblems.Behavioral.Behavior, HardProblems.Behavioral.mapTrajectory, HardProblems.Behavioral.hide, HardProblems.Behavioral.interconnect, HardProblems.Behavioral.hide_interconnect_subset, HardProblems.Behavioral.hide_interconnect_strict_counterexample, HardProblems.Behavioral.hide_equiv_symm, HardProblems.Behavioral.IsSafe, HardProblems.Behavioral.IsViable, HardProblems.Behavioral.empty_behavior_safe, HardProblems.Behavioral.empty_behavior_not_viable, HardProblems.Behavioral.isSafe_mono, HardProblems.Behavioral.isSafe_hide_iff, HardProblems.Behavioral.isSafe_hide, HardProblems.Behavioral.IsRun, HardProblems.Behavioral.generatedBehavior, HardProblems.Behavioral.generatedBehavior_safe_of_invariant, HardProblems.Behavioral.generatedBehavior_safe_iff_invariant, HardProblems.Behavioral.restrict, HardProblems.Behavioral.Compatible, HardProblems.Behavioral.existsUnique_glue, HardProblems.Behavioral.admissible_glue_counterexample, HardProblems.Representation.run, HardProblems.CoordinateObservation.Indist, HardProblems.CoordinateObservation.run_conj, HardProblems.CoordinateObservation.indist_conj_iff, HardProblems.CoordinateReach.reachableSet, HardProblems.CoordinateReach.run_conj, HardProblems.CoordinateReach.image_reachableSet_conj, HardProblems.CoordinateBarrier.PathBetween, HardProblems.CoordinateBarrier.Relabel, HardProblems.CoordinateBarrier.PathBetween.map, HardProblems.CoordinateBarrier.PathBetween.relabel, HardProblems.CoordinateBarrier.PathBetween.unrelabel, HardProblems.CoordinateBarrier.pathDepth, HardProblems.CoordinateBarrier.barrier, HardProblems.CoordinateBarrier.pathDepth_relabel, HardProblems.CoordinateBarrier.pathDepth_unrelabel, HardProblems.CoordinateBarrier.path_nonempty_relabel_iff, HardProblems.CoordinateBarrier.barrier_relabel_eqاجرا اجرا
-- LeanTest/HardProblems/Behavioral.lean
/-- A complete signal trajectory on time domain `T`. -/
abbrev Trajectory (T : Type u) (W : Type v) := T → W

-- LeanTest/HardProblems/Behavioral.lean
/-- A behavior is the set of trajectories admitted by a system model. -/
abbrev Behavior (T : Type u) (W : Type v) := Set (Trajectory T W)

-- LeanTest/HardProblems/Behavioral.lean
/-- Apply a signal map pointwise to a trajectory. -/
def mapTrajectory {T : Type u} {W : Type v} {V : Type w}
    (f : W → V) (x : Trajectory T W) : Trajectory T V :=
  f ∘ x

-- LeanTest/HardProblems/Behavioral.lean
/-- Hide or relabel signal coordinates by taking the direct image of a
behavior under the pointwise signal map. -/
def hide {T : Type u} {W : Type v} {V : Type w}
    (f : W → V) (B : Behavior T W) : Behavior T V :=
  mapTrajectory f '' B

-- LeanTest/HardProblems/Behavioral.lean
/-- On one already aligned signal boundary, behavioral interconnection imposes
both component constraints. -/
def interconnect {T : Type u} {W : Type v}
    (B₁ B₂ : Behavior T W) : Behavior T W :=
  B₁ ∩ B₂

-- LeanTest/HardProblems/Behavioral.lean
/-- Hiding after interconnection is contained in interconnecting after hiding.
The reverse inclusion can fail because the two projected witnesses need not be
the same hidden trajectory. -/
theorem hide_interconnect_subset {T : Type u} {W : Type v} {V : Type w}
    (f : W → V) (B₁ B₂ : Behavior T W) :
    hide f (interconnect B₁ B₂) ⊆
      interconnect (hide f B₁) (hide f B₂) := by
  rintro _ ⟨x, ⟨hx₁, hx₂⟩, rfl⟩
  exact ⟨⟨x, hx₁, rfl⟩, ⟨x, hx₂, rfl⟩⟩

-- LeanTest/HardProblems/Behavioral.lean
/-- Explicit strictness witness: each component admits a different hidden Bool
trajectory with the same visible projection. The components are individually
viable, their interconnection is empty, but their visible projections have a
nonempty interconnection. -/
theorem hide_interconnect_strict_counterexample :
    let f : Bool × Bool → Bool := Prod.fst
    let x₀ : Trajectory Unit (Bool × Bool) := fun _ ↦ (false, false)
    let x₁ : Trajectory Unit (Bool × Bool) := fun _ ↦ (false, true)
    let B₀ : Behavior Unit (Bool × Bool) := {x₀}
    let B₁ : Behavior Unit (Bool × Bool) := {x₁}
    B₀.Nonempty ∧ B₁.Nonempty ∧ interconnect B₀ B₁ = ∅ ∧
      hide f (interconnect B₀ B₁) ⊂
        interconnect (hide f B₀) (hide f B₁) := by
  dsimp
  refine ⟨Set.singleton_nonempty _, Set.singleton_nonempty _, ?_⟩
  have hEmpty :
      interconnect ({fun _ : Unit ↦ (false, false)} :
        Behavior Unit (Bool × Bool)) {fun _ : Unit ↦ (false, true)} = ∅ := by
    apply Set.eq_empty_iff_forall_notMem.mpr
    rintro z ⟨hz₀, hz₁⟩
    rw [Set.mem_singleton_iff] at hz₀ hz₁
    have hEq : (fun _ : Unit ↦ (false, false)) =
        fun _ : Unit ↦ (false, true) := hz₀.symm.trans hz₁
    have := congrFun hEq ()
    simp at this
  refine ⟨hEmpty, ?_⟩
  refine Set.ssubset_iff_subset_ne.mpr
    ⟨hide_interconnect_subset _ _ _, ?_⟩
  intro hEq
  have hVisible : (fun _ : Unit ↦ false) ∈
      interconnect
        (hide Prod.fst ({fun _ : Unit ↦ (false, false)} :
          Behavior Unit (Bool × Bool)))
        (hide Prod.fst ({fun _ : Unit ↦ (false, true)} :
          Behavior Unit (Bool × Bool))) := by
    exact ⟨⟨_, rfl, rfl⟩, ⟨_, rfl, rfl⟩⟩
  have hImpossible : (fun _ : Unit ↦ false) ∈
      hide Prod.fst
        (interconnect ({fun _ : Unit ↦ (false, false)} :
          Behavior Unit (Bool × Bool)) {fun _ : Unit ↦ (false, true)}) := by
    rw [hEq]
    exact hVisible
  rw [hEmpty] at hImpossible
  rcases hImpossible with ⟨_, hmem, _⟩
  exact hmem

-- LeanTest/HardProblems/Behavioral.lean
/-- Exact relabeling by an equivalence loses no behavior. -/
theorem hide_equiv_symm {T : Type u} {W : Type v} {V : Type w}
    (e : W ≃ V) (B : Behavior T W) :
    hide e.symm (hide e B) = B := by
  ext x
  constructor
  · rintro ⟨_, ⟨z, hz, rfl⟩, hzx⟩
    have hzx' : z = x := by
      simpa [mapTrajectory, Function.comp_def] using hzx
    simpa [← hzx'] using hz
  · intro hx
    refine ⟨mapTrajectory e x, ⟨x, hx, rfl⟩, ?_⟩
    funext t
    simp [mapTrajectory, Function.comp_def]

-- LeanTest/HardProblems/Behavioral.lean
/-- A temporal safety predicate holds at every time on every admitted
trajectory. -/
def IsSafe {T : Type u} {W : Type v}
    (B : Behavior T W) (Safe : W → Prop) : Prop :=
  ∀ x ∈ B, ∀ t, Safe (x t)

-- LeanTest/HardProblems/Behavioral.lean
/-- A behavior is viable when it admits at least one trajectory. -/
def IsViable {T : Type u} {W : Type v} (B : Behavior T W) : Prop :=
  B.Nonempty

-- LeanTest/HardProblems/Behavioral.lean
/-- Universal safety is vacuous on the empty behavior. -/
theorem empty_behavior_safe {T : Type u} {W : Type v} {Safe : W → Prop} :
    IsSafe (∅ : Behavior T W) Safe := by
  simp [IsSafe]

-- LeanTest/HardProblems/Behavioral.lean
/-- The empty behavior is not viable. -/
theorem empty_behavior_not_viable {T : Type u} {W : Type v} :
    ¬ IsViable (∅ : Behavior T W) := by
  simp [IsViable]

-- LeanTest/HardProblems/Behavioral.lean
/-- Refining a behavior preserves every universal safety property. -/
theorem isSafe_mono {T : Type u} {W : Type v}
    {B B' : Behavior T W} {Safe : W → Prop}
    (hsub : B' ⊆ B) (h : IsSafe B Safe) : IsSafe B' Safe := by
  intro x hx t
  exact h x (hsub hx) t

-- LeanTest/HardProblems/Behavioral.lean
/-- Direct-image hiding has an exact safety semantics: a visible predicate
holds on every projected trajectory exactly when its pullback holds on every
original trajectory. This says nothing about predicates on discarded signal
coordinates. -/
theorem isSafe_hide_iff {T : Type u} {W : Type v} {V : Type w}
    (f : W → V) (B : Behavior T W) (SafeV : V → Prop) :
    IsSafe (hide f B) SafeV ↔ IsSafe B (SafeV ∘ f) := by
  constructor
  · intro h x hx t
    simpa [mapTrajectory, Function.comp_def] using
      h (mapTrajectory f x) ⟨x, hx, rfl⟩ t
  · rintro h _ ⟨x, hx, rfl⟩ t
    simpa [mapTrajectory, Function.comp_def] using h x hx t

-- LeanTest/HardProblems/Behavioral.lean
/-- Hiding preserves a safety property only when the signal map carries the
declared internal safe set into the external one. -/
theorem isSafe_hide {T : Type u} {W : Type v} {V : Type w}
    {B : Behavior T W} {SafeW : W → Prop} {SafeV : V → Prop}
    (f : W → V) (hB : IsSafe B SafeW)
    (hmap : ∀ w, SafeW w → SafeV (f w)) :
    IsSafe (hide f B) SafeV := by
  rintro _ ⟨x, hx, rfl⟩ t
  exact hmap (x t) (hB x hx t)

-- LeanTest/HardProblems/Behavioral.lean
/-- A discrete trajectory follows `step` at every successor time. -/
def IsRun {S : Type u} (step : S → S) (x : Trajectory ℕ S) : Prop :=
  ∀ n, x (n + 1) = step (x n)

-- LeanTest/HardProblems/Behavioral.lean
/-- All runs whose initial state lies in `Init`. -/
def generatedBehavior {S : Type u} (step : S → S) (Init : Set S) :
    Behavior ℕ S :=
  {x | x 0 ∈ Init ∧ IsRun step x}

-- LeanTest/HardProblems/Behavioral.lean
/-- Forward invariance gives all-time safety for every generated run. -/
theorem generatedBehavior_safe_of_invariant {S : Type u}
    {step : S → S} {Init Safe : Set S}
    (hInit : Init ⊆ Safe) (hInv : Set.MapsTo step Safe Safe) :
    IsSafe (generatedBehavior step Init) Safe := by
  rintro x ⟨hx₀, hrun⟩ n
  induction n with
  | zero => exact hInit hx₀
  | succ n ih =>
      rw [hrun n]
      exact hInv ih

-- LeanTest/HardProblems/Behavioral.lean
/-- For the behavior generated from every state in `Safe`, temporal safety is
equivalent to one-step forward invariance. -/
theorem generatedBehavior_safe_iff_invariant {S : Type u}
    (step : S → S) (Safe : Set S) :
    IsSafe (generatedBehavior step Safe) Safe ↔
      Set.MapsTo step Safe Safe := by
  constructor
  · intro h s hs
    let x : Trajectory ℕ S := fun n ↦ Nat.rec s (fun _ current ↦ step current) n
    have hrun : IsRun step x := by
      intro n
      simp [x]
    have hx : x ∈ generatedBehavior step Safe := by
      exact ⟨by simpa [x] using hs, hrun⟩
    have hs₁ := h x hx 1
    change x 1 ∈ Safe at hs₁
    simpa [x] using hs₁
  · intro hInv
    exact generatedBehavior_safe_of_invariant (by exact fun _ h ↦ h) hInv

-- LeanTest/HardProblems/Behavioral.lean
/-- Restrict a local trajectory from `I` to a smaller time domain `J`. -/
def restrict {T : Type u} {W : Type v} {I J : Set T}
    (hJI : J ⊆ I) (x : I → W) : J → W :=
  fun t ↦ x ⟨t.1, hJI t.2⟩

-- LeanTest/HardProblems/Behavioral.lean
/-- Two local trajectories agree wherever their time domains overlap. -/
def Compatible {T : Type u} {W : Type v} {I J : Set T}
    (x : I → W) (y : J → W) : Prop :=
  ∀ (t : T) (htI : t ∈ I) (htJ : t ∈ J),
    x ⟨t, htI⟩ = y ⟨t, htJ⟩

-- LeanTest/HardProblems/Behavioral.lean
/-- Compatible functions on two time domains have a unique global function on
their union with the prescribed restrictions. -/
theorem existsUnique_glue {T : Type u} {W : Type v} {I J : Set T}
    (x : I → W) (y : J → W) (hxy : Compatible x y) :
    ∃! z : ↥(I ∪ J) → W,
      restrict Set.subset_union_left z = x ∧
      restrict Set.subset_union_right z = y := by
  classical
  let z : ↥(I ∪ J) → W := fun t ↦
    if htI : (t : T) ∈ I then x ⟨t, htI⟩
    else y ⟨t, t.property.resolve_left htI⟩
  have hzI : restrict Set.subset_union_left z = x := by
    funext t
    simp [restrict, z]
  have hzJ : restrict Set.subset_union_right z = y := by
    funext t
    by_cases htI : (t : T) ∈ I
    · simpa [restrict, z, htI] using hxy t htI t.property
    · simp [restrict, z, htI]
  refine ⟨z, ⟨hzI, hzJ⟩, ?_⟩
  intro z' hz'
  funext t
  by_cases htI : (t : T) ∈ I
  · have h := congrFun hz'.1 (⟨t, htI⟩ : I)
    simpa [restrict, z, htI] using h
  · have htJ : (t : T) ∈ J := t.property.resolve_left htI
    have h := congrFun hz'.2 (⟨t, htJ⟩ : J)
    simpa [restrict, z, htI] using h

-- LeanTest/HardProblems/Behavioral.lean
/-- Raw compatible functions glue, but a nonempty declared set of admissible
global trajectories need not contain that glue. Thus arbitrary local/global
admissibility data do not acquire the sheaf property for free. -/
theorem admissible_glue_counterexample :
    let I : Set Bool := {false}
    let J : Set Bool := {true}
    let x : I → Bool := fun _ ↦ false
    let y : J → Bool := fun _ ↦ true
    let G : Set (↥(I ∪ J) → Bool) := {fun _ ↦ false}
    Compatible x y ∧ G.Nonempty ∧
      ¬ ∃ z ∈ G,
        restrict Set.subset_union_left z = x ∧
        restrict Set.subset_union_right z = y := by
  dsimp
  refine ⟨?_, Set.singleton_nonempty _, ?_⟩
  · intro t htI htJ
    rw [Set.mem_singleton_iff] at htI htJ
    exact Bool.noConfusion (htI.symm.trans htJ)
  · rintro ⟨z, hz, ⟨_, hzJ⟩⟩
    subst z
    have h := congrFun hzJ (⟨true, by simp⟩ : (↑({true} : Set Bool)))
    simp [restrict] at h

-- LeanTest/HardProblems/Representation.lean
/-- Drive deterministic dynamics with a finite input word, applying its
leftmost input first. -/
def run {U X : Type*} (step : U → X → X) : List U → X → X
  | [], x => x
  | u :: us, x => run step us (step u x)

-- LeanTest/HardProblems/Representation.lean
/-- Two states have identical outputs after every finite input word. -/
def Indist (step : U → X → X) (out : X → Y) (x x' : X) : Prop :=
  ∀ us : List U, out (run step us x) = out (run step us x')

-- LeanTest/HardProblems/Representation.lean
/-- A conjugating equivalence commutes with every finite run. -/
theorem run_conj (e : X ≃ X') {step : U → X → X}
    {step' : U → X' → X'}
    (hstep : ∀ u x, e (step u x) = step' u (e x)) (us : List U) (x : X) :
    e (run step us x) = run step' us (e x) := by
  induction us generalizing x with
  | nil => rfl
  | cons u us ih =>
    simp only [run]
    rw [ih, hstep]

-- LeanTest/HardProblems/Representation.lean
/-- Coordinate change preserves finite-word indistinguishability in both
directions when it conjugates transitions and preserves outputs. -/
theorem indist_conj_iff (e : X ≃ X') {step : U → X → X}
    {step' : U → X' → X'} {out : X → Y} {out' : X' → Y}
    (hstep : ∀ u x, e (step u x) = step' u (e x))
    (hout : ∀ x, out x = out' (e x)) (x y : X) :
    Indist step out x y ↔ Indist step' out' (e x) (e y) := by
  constructor
  · intro h us
    rw [← run_conj e hstep, ← run_conj e hstep]
    rw [← hout, ← hout]
    exact h us
  · intro h us
    rw [hout, hout]
    rw [run_conj e hstep, run_conj e hstep]
    exact h us

-- LeanTest/HardProblems/Representation.lean
/-- States reachable from `x` by some finite input word. -/
def reachableSet (step : U → X → X) (x : X) : Set X :=
  {z | ∃ us : List U, run step us x = z}

-- LeanTest/HardProblems/Representation.lean
/-- A conjugating equivalence commutes with every finite run. -/
theorem run_conj (e : X ≃ X') {step : U → X → X}
    {step' : U → X' → X'}
    (hstep : ∀ u x, e (step u x) = step' u (e x)) (us : List U) (x : X) :
    e (run step us x) = run step' us (e x) := by
  induction us generalizing x with
  | nil => rfl
  | cons u us ih =>
    simp only [run]
    calc
      e (run step us (step u x)) = run step' us (e (step u x)) := ih _
      _ = run step' us (step' u (e x)) := congrArg (run step' us) (hstep u x)

-- LeanTest/HardProblems/Representation.lean
/-- Coordinate change carries the concrete reachable set exactly onto the
reachable set in the conjugate coordinates. -/
theorem image_reachableSet_conj (e : X ≃ X') {step : U → X → X}
    {step' : U → X' → X'}
    (hstep : ∀ u x, e (step u x) = step' u (e x)) (x : X) :
    e '' reachableSet step x = reachableSet step' (e x) := by
  ext z
  constructor
  · rintro ⟨y, ⟨us, hus⟩, rfl⟩
    exact ⟨us, (run_conj e hstep us x).symm.trans (congrArg e hus)⟩
  · rintro ⟨us, hus⟩
    refine ⟨run step us x, ⟨us, rfl⟩, ?_⟩
    exact (run_conj e hstep us x).trans hus

-- LeanTest/HardProblems/Representation.lean
/-- A finite path including both endpoints. -/
structure PathBetween {X : Type u} (Adj : X → X → Prop) (x y : X) where
  points : List X
  head_eq : points.head? = some x
  last_eq : points.getLast? = some y
  admissible : points.IsChain Adj

-- LeanTest/HardProblems/Representation.lean
/-- Relabel a graph along a state-space equivalence. -/
def Relabel {X : Type u} {Y : Type v} (e : X ≃ Y)
    (Adj : X → X → Prop) : Y → Y → Prop :=
  fun a b => Adj (e.symm a) (e.symm b)

-- LeanTest/HardProblems/Representation.lean
/-- Map a path through any edge-preserving function. -/
def PathBetween.map {X : Type u} {Y : Type v}
    {Adj : X → X → Prop} {Adj' : Y → Y → Prop}
    (f : X → Y) (hstep : ∀ {a b}, Adj a b → Adj' (f a) (f b))
    {x y : X} (γ : PathBetween Adj x y) : PathBetween Adj' (f x) (f y) where
  points := γ.points.map f
  head_eq := by rw [List.head?_map, γ.head_eq]; rfl
  last_eq := by rw [List.getLast?_map, γ.last_eq]; rfl
  admissible := (List.isChain_map f).mpr
    (γ.admissible.imp fun _ _ h => hstep h)

-- LeanTest/HardProblems/Representation.lean
/-- Transport a path through a coordinate equivalence. -/
def PathBetween.relabel {X : Type u} {Y : Type v} {Adj : X → X → Prop}
    (e : X ≃ Y) {x y : X} (γ : PathBetween Adj x y) :
    PathBetween (Relabel e Adj) (e x) (e y) :=
  γ.map e (by intro a b h; simpa [Relabel] using h)

-- LeanTest/HardProblems/Representation.lean
/-- Return a transported path to the original coordinates. -/
def PathBetween.unrelabel {X : Type u} {Y : Type v} {Adj : X → X → Prop}
    (e : X ≃ Y) {x y : X}
    (γ : PathBetween (Relabel e Adj) (e x) (e y)) : PathBetween Adj x y := by
  simpa [Relabel] using
    γ.map e.symm (by intro a b h; simpa [Relabel] using h)

-- LeanTest/HardProblems/Representation.lean
/-- The deepest dip below the score of the starting vertex along one path. -/
noncomputable def pathDepth {X : Type u} {Adj : X → X → Prop}
    (J : X → ℝ) (x : X) {y : X} (γ : PathBetween Adj x y) : ℝ≥0∞ :=
  ⨆ z ∈ γ.points, ENNReal.ofReal (J x - J z)

-- LeanTest/HardProblems/Representation.lean
/-- The least path depth; the empty infimum is `⊤`. -/
noncomputable def barrier {X : Type u} (Adj : X → X → Prop)
    (J : X → ℝ) (x y : X) : ℝ≥0∞ :=
  ⨅ γ : PathBetween Adj x y, pathDepth J x γ

-- LeanTest/HardProblems/Representation.lean
/-- Relabeling a path and objective preserves that path's depth exactly. -/
theorem pathDepth_relabel {X : Type u} {Y : Type v}
    {Adj : X → X → Prop} (e : X ≃ Y) (J : X → ℝ)
    {x y : X} (γ : PathBetween Adj x y) :
    pathDepth (fun z => J (e.symm z)) (e x) (γ.relabel e) =
      pathDepth J x γ := by
  simp only [pathDepth, PathBetween.relabel, PathBetween.map,
    Equiv.symm_apply_apply]
  apply le_antisymm
  · refine iSup_le fun z => iSup_le fun hz => ?_
    obtain ⟨a, ha, rfl⟩ := List.mem_map.mp hz
    simpa using
      (le_iSup_of_le a
        (le_iSup_of_le ha (le_refl (ENNReal.ofReal (J x - J a)))))
  · refine iSup_le fun a => iSup_le fun ha => ?_
    refine le_iSup_of_le (e a) (le_iSup_of_le ?_ ?_)
    · exact List.mem_map.mpr ⟨a, ha, rfl⟩
    · simp

-- LeanTest/HardProblems/Representation.lean
/-- Returning a relabeled path to the source coordinates also preserves its
depth exactly. -/
theorem pathDepth_unrelabel {X : Type u} {Y : Type v}
    {Adj : X → X → Prop} (e : X ≃ Y) (J : X → ℝ)
    {x y : X} (γ : PathBetween (Relabel e Adj) (e x) (e y)) :
    pathDepth J x (γ.unrelabel e) =
      pathDepth (fun z => J (e.symm z)) (e x) γ := by
  simp only [pathDepth, unrelabel_points, Equiv.symm_apply_apply]
  apply le_antisymm
  · refine iSup_le fun a => iSup_le fun ha => ?_
    obtain ⟨z, hz, rfl⟩ := List.mem_map.mp ha
    exact le_iSup_of_le z (le_iSup_of_le hz (le_refl _))
  · refine iSup_le fun z => iSup_le fun hz => ?_
    refine le_iSup_of_le (e.symm z) (le_iSup_of_le ?_ ?_)
    · exact List.mem_map.mpr ⟨z, hz, rfl⟩
    · rfl

-- LeanTest/HardProblems/Representation.lean
/-- Exact coordinate changes preserve the existence of a path. -/
theorem path_nonempty_relabel_iff {X : Type u} {Y : Type v}
    {Adj : X → X → Prop} (e : X ≃ Y) {x y : X} :
    Nonempty (PathBetween (Relabel e Adj) (e x) (e y)) ↔
      Nonempty (PathBetween Adj x y) := by
  constructor
  · rintro ⟨γ⟩
    exact ⟨γ.unrelabel e⟩
  · rintro ⟨γ⟩
    exact ⟨γ.relabel e⟩

-- LeanTest/HardProblems/Representation.lean
/-- Exact coordinate changes preserve every barrier height, including the
infinite value caused by unreachability. -/
theorem barrier_relabel_eq {X : Type u} {Y : Type v}
    (Adj : X → X → Prop) (e : X ≃ Y) (J : X → ℝ) (x y : X) :
    barrier (Relabel e Adj) (fun z => J (e.symm z)) (e x) (e y) =
      barrier Adj J x y := by
  apply le_antisymm
  · refine le_iInf fun γ => ?_
    exact iInf_le_of_le (γ.relabel e)
      (le_of_eq (pathDepth_relabel e J γ))
  · refine le_iInf fun γ => ?_
    exact iInf_le_of_le (γ.unrelabel e)
      (le_of_eq (pathDepth_unrelabel e J γ))

مرز. اشتراک، فضای سیگنال هم‌تراز را پیش‌فرض می‌گیرد. چسبانش در سطح تابع ثابت نمی‌کند که رفتارهای مجاز یک شیف می‌سازند. مثال متناهیِ شکست از ناحیه‌های مجزا استفاده می‌کند، پس فرض سازگاری‌اش به‌طور تهی‌صدق برقرار است، هرچند ردشدن چسبانش خام یکتا تهی‌صدق نیست. ایمنی همگانی می‌تواند برای رفتار تهی به‌طور تهی‌صدق برقرار باشد، پس زیست‌پذیری جداست. محمول صوری فقط قطعهٔ ایمنی در همهٔ زمان‌ها را پوشش می‌دهد، نه منطق زمانی به‌طور کلی؛ هیچ سایت، توپوس، منطق درونی، مدل هیبریدی یا الگوریتم وارسی صوری نشده است. کشف هم‌ارزی دقیق مختصاتی رایگان نیست و انتزاع اتلافی اثبات‌های انتقال بیشتری می‌خواهد.

انتزاع دقیق و بالابردن مسیر

فرض‌ها. نگاشتی از سامانهٔ گذار عینی به سامانه‌ای انتزاعی دارای شبیه‌سازی پیشرو، بالابردن موضعی گام از هر نمایندهٔ عینی و حفظ و بازتاب هدف است.

نتیجه. مسیرهای عینی به مسیرهای انتزاعی نگاشت می‌شوند، مسیرهای انتزاعی از مبدأ عینی بیان‌شده بالا برده می‌شوند و دسترس‌پذیری هدف‌های متناظر هم‌ارز است. انتزاع‌های دقیق با هم ترکیب می‌شوند. مثالی نقض متناهی نشان می‌دهد شبیه‌سازی پیشرو بدون بالابردن، جهت معکوس را توجیه نمی‌کند. (بررسی‌شده با ماشین)

Lean declarations and proofs (Representation.lean): HardProblems.SolutionTransfer.Reach, HardProblems.SolutionTransfer.Reach.map, HardProblems.SolutionTransfer.ReachTo, HardProblems.SolutionTransfer.ForwardSimulation, HardProblems.SolutionTransfer.StepLifting, HardProblems.SolutionTransfer.concrete_reach_maps, HardProblems.SolutionTransfer.lift_reach, HardProblems.SolutionTransfer.abstract_reach_lifts, HardProblems.SolutionTransfer.ExactAbstraction, HardProblems.SolutionTransfer.ExactAbstraction.reachTo_iff, HardProblems.SolutionTransfer.ExactAbstraction.comp, HardProblems.SolutionTransfer.forward_without_lifting_counterexampleاجرا
-- LeanTest/HardProblems/Representation.lean
/-- Finite reflexive-transitive reachability generated by `Adj`. -/
inductive Reach {X : Type u} (Adj : X → X → Prop) (x : X) : X → Prop
  | refl : Reach Adj x x
  | tail {y z : X} : Reach Adj x y → Adj y z → Reach Adj x z

-- LeanTest/HardProblems/Representation.lean
/-- A map that preserves single steps preserves finite reachability. -/
theorem map {X : Type u} {Y : Type v} {Adj : X → X → Prop}
    {Adj' : Y → Y → Prop} {f : X → Y} {x y : X}
    (hstep : ∀ {a b}, Adj a b → Adj' (f a) (f b))
    (h : Reach Adj x y) : Reach Adj' (f x) (f y) := by
  induction h with
  | refl => exact Reach.refl
  | tail hxy hyz ih => exact Reach.tail ih (hstep hyz)

-- LeanTest/HardProblems/Representation.lean
/-- Some state in `G` is reachable from `x`. -/
def ReachTo {X : Type u} (Adj : X → X → Prop) (G : Set X) (x : X) : Prop :=
  ∃ y, Reach Adj x y ∧ y ∈ G

-- LeanTest/HardProblems/Representation.lean
/-- Every concrete step has a corresponding abstract step. -/
def ForwardSimulation {X : Type u} {Y : Type v} (f : X → Y)
    (Adj : X → X → Prop) (Adj' : Y → Y → Prop) : Prop :=
  ∀ {x y}, Adj x y → Adj' (f x) (f y)

-- LeanTest/HardProblems/Representation.lean
/-- Every abstract step offered at `f x` can be implemented from that actual
concrete representative `x`. This is stronger than requiring some member of
the fibre to implement the step. -/
def StepLifting {X : Type u} {Y : Type v} (f : X → Y)
    (Adj : X → X → Prop) (Adj' : Y → Y → Prop) : Prop :=
  ∀ (x : X) (y' : Y), Adj' (f x) y' →
    ∃ y : X, Adj x y ∧ f y = y'

-- LeanTest/HardProblems/Representation.lean
/-- Forward simulation sends a concrete solution to the image of its concrete
goal set. -/
theorem concrete_reach_maps {X : Type u} {Y : Type v}
    {Adj : X → X → Prop} {Adj' : Y → Y → Prop}
    {f : X → Y} {G : Set X} {x₀ : X}
    (hmap : ForwardSimulation f Adj Adj') :
    ReachTo Adj G x₀ → ReachTo Adj' (f '' G) (f x₀) := by
  rintro ⟨y, hxy, hyG⟩
  exact ⟨f y, Reach.map hmap hxy, ⟨y, hyG, rfl⟩⟩

-- LeanTest/HardProblems/Representation.lean
/-- Local step lifting extends to a lift of every finite abstract path, with
the endpoint lying in the required fibre. -/
theorem lift_reach {X : Type u} {Y : Type v}
    {Adj : X → X → Prop} {Adj' : Y → Y → Prop}
    {f : X → Y} (hlift : StepLifting f Adj Adj')
    {x : X} {y' : Y} (h : Reach Adj' (f x) y') :
    ∃ y : X, Reach Adj x y ∧ f y = y' := by
  induction h with
  | refl => exact ⟨x, Reach.refl, rfl⟩
  | @tail y' z' hxy hyz ih =>
      rcases ih with ⟨y, hxy', hy⟩
      rcases hlift y z' (hy ▸ hyz) with ⟨z, hyz', hz⟩
      exact ⟨z, Reach.tail hxy' hyz', hz⟩

-- LeanTest/HardProblems/Representation.lean
/-- An abstract solution descends when paths lift and abstract goal membership
reflects concrete success. -/
theorem abstract_reach_lifts {X : Type u} {Y : Type v}
    {Adj : X → X → Prop} {Adj' : Y → Y → Prop}
    {f : X → Y} {G : Set X} {G' : Set Y} {x₀ : X}
    (hlift : StepLifting f Adj Adj')
    (hreflect : ∀ x, f x ∈ G' → x ∈ G) :
    ReachTo Adj' G' (f x₀) → ReachTo Adj G x₀ := by
  rintro ⟨y', hxy, hyG⟩
  rcases lift_reach hlift hxy with ⟨y, hxy', hy⟩
  exact ⟨y, hxy', hreflect y (hy.symm ▸ hyG)⟩

-- LeanTest/HardProblems/Representation.lean
/-- The hypotheses for exact reachability transfer. -/
structure ExactAbstraction {X : Type u} {Y : Type v} (f : X → Y)
    (Adj : X → X → Prop) (Adj' : Y → Y → Prop)
    (G : Set X) (G' : Set Y) : Prop where
  mapStep : ForwardSimulation f Adj Adj'
  liftStep : StepLifting f Adj Adj'
  goalExact : ∀ x, x ∈ G ↔ f x ∈ G'

-- LeanTest/HardProblems/Representation.lean
/-- Under the exact hypotheses, concrete and abstract goal reachability agree. -/
theorem ExactAbstraction.reachTo_iff {X : Type u} {Y : Type v}
    {f : X → Y} {Adj : X → X → Prop} {Adj' : Y → Y → Prop}
    {G : Set X} {G' : Set Y} (h : ExactAbstraction f Adj Adj' G G') (x : X) :
    ReachTo Adj G x ↔ ReachTo Adj' G' (f x) := by
  constructor
  · rintro ⟨y, hxy, hyG⟩
    exact ⟨f y, Reach.map h.mapStep hxy, h.goalExact y |>.mp hyG⟩
  · exact abstract_reach_lifts h.liftStep (fun y => (h.goalExact y).mpr)

-- LeanTest/HardProblems/Representation.lean
/-- Exact abstractions compose. -/
theorem ExactAbstraction.comp {X : Type u} {Y : Type v} {Z : Type w}
    {f : X → Y} {g : Y → Z}
    {AdjX : X → X → Prop} {AdjY : Y → Y → Prop}
    {AdjZ : Z → Z → Prop} {GX : Set X} {GY : Set Y} {GZ : Set Z}
    (h₁ : ExactAbstraction f AdjX AdjY GX GY)
    (h₂ : ExactAbstraction g AdjY AdjZ GY GZ) :
    ExactAbstraction (g ∘ f) AdjX AdjZ GX GZ := by
  constructor
  · intro x y hxy
    exact h₂.mapStep (h₁.mapStep hxy)
  · intro x z hz
    rcases h₂.liftStep (f x) z hz with ⟨y, hxy, hy⟩
    rcases h₁.liftStep x y hxy with ⟨x', hxx', hx'⟩
    exact ⟨x', hxx', by simp only [Function.comp_apply, hx', hy]⟩
  · intro x
    exact (h₁.goalExact x).trans (h₂.goalExact (f x))

-- LeanTest/HardProblems/Representation.lean
/-- A forward simulation can have a reachable abstract goal with no concrete
representative. This explicit finite example isolates the missing lifting
condition. -/
theorem forward_without_lifting_counterexample :
    let f : Unit → Bool := fun _ => false
    let Adj : Unit → Unit → Prop := fun _ _ => False
    let Adj' : Bool → Bool → Prop := fun a b => a = false ∧ b = true
    ForwardSimulation f Adj Adj' ∧
      ReachTo Adj' ({true} : Set Bool) (f ()) ∧
      ¬ ReachTo Adj {x | f x = true} () := by
  dsimp
  constructor
  · intro x y h
    exact False.elim h
  constructor
  · exact ⟨true, Reach.tail Reach.refl ⟨rfl, rfl⟩, by simp⟩
  · rintro ⟨y, _, hy⟩
    simp at hy

مرز. قضیه دسترس‌پذیری را حفظ می‌کند. احتمال‌ها، ایمنی، طول مسیر، عمق مانع یا هزینهٔ محاسباتی را حفظ نمی‌کند، مگر آنکه فرض‌های بیشتری اثبات شوند.

حافظهٔ متناهی و خروجی با تأخیر

فرض‌ها. ردیاب دقیق، گذارها و خروجی‌های ماشین متناهی با خروجی‌های جداکننده را درهم‌تنیده می‌کند. جداگانه، با \(2\le b\) و \(0<n\)، ماشین ثباتی یک‌گذره باید حاصل‌ضرب دقیق دو عملوند با پهنای ثابت در مبنای \(b\) را از پیکربندی متناهی نهایی خود بیرون دهد.

نتیجه. نگاشت ردیابی یک‌به‌یک است، پس ردیاب دست‌کم به‌اندازهٔ ماشین ردیابی‌شده حالت دارد. ماشین ثباتی برای ورودی‌های \(n\)رقمی در مبنای \(b\) دست‌کم به \(b^n\) پیکربندی نهایی نیاز دارد؛ بنابراین بودجهٔ بیت دست‌کم به‌صورت خطی با \(n\) رشد می‌کند. (بررسی‌شده با ماشین)

Lean declarations and proofs (BoundedMachines.lean, Positional.lean): HardProblems.Machine, HardProblems.Machine.run, HardProblems.Machine.Separated, HardProblems.Tracks, HardProblems.Tracks.run_eq, HardProblems.Tracks.injective, HardProblems.card_le_of_tracks, HardProblems.card_eq_of_mutual_tracks, HardProblems.RegisterMachine, HardProblems.RegisterMachine.run, HardProblems.RegisterMachine.multiplicationInput, HardProblems.RegisterMachine.ComputesMultiplicationAt, HardProblems.RegisterMachine.finalState_injective, HardProblems.RegisterMachine.state_capacity_lower_bound, HardProblems.RegisterMachine.linear_bit_lower_bound, HardProblems.RegisterMachine.no_constant_register_budgetاجرا اجرا
-- LeanTest/HardProblems/BoundedMachines.lean
/-- A deterministic machine with inputs `I`, outputs `O`, and state
space `S`: a step function and an output map. -/
structure Machine (I O S : Type*) where
  step : S → I → S
  out : S → O

-- LeanTest/HardProblems/BoundedMachines.lean
/-- Run a machine from state `s` on an input word `w`. -/
def Machine.run (M : Machine I O S) (s : S) (w : List I) : S :=
  w.foldl M.step s

-- LeanTest/HardProblems/BoundedMachines.lean
/-- A machine is output-separated when any two states that agree on the
outputs along every input word are equal. -/
def Machine.Separated (M : Machine I O S) : Prop :=
  ∀ s t : S, (∀ w : List I, M.out (M.run s w) = M.out (M.run t w)) → s = t

-- LeanTest/HardProblems/BoundedMachines.lean
/-- `f` tracks machine `B` inside machine `A`: the encoding intertwines
the dynamics and reproduces the outputs. This is what it means for `A`
to maintain a faithful copy of `B`. -/
structure Tracks (A : Machine I O S) (B : Machine I O T) (f : T → S) : Prop where
  step_eq : ∀ t i, f (B.step t i) = A.step (f t) i
  out_eq : ∀ t, A.out (f t) = B.out t

-- LeanTest/HardProblems/BoundedMachines.lean
/-- A tracking map intertwines whole runs, not just single steps. -/
theorem Tracks.run_eq {A : Machine I O S} {B : Machine I O T} {f : T → S}
    (h : Tracks A B f) (t : T) (w : List I) :
    f (B.run t w) = A.run (f t) w := by
  induction w generalizing t with
  | nil => rfl
  | cons i w ih =>
    simp [Machine.run]
    rw [← h.step_eq]
    exact ih (B.step t i)

-- LeanTest/HardProblems/BoundedMachines.lean
/-- Tracking an output-separated machine is injective: the tracker must
hold distinct internal states for distinct tracked states. -/
theorem Tracks.injective {A : Machine I O S} {B : Machine I O T} {f : T → S}
    (h : Tracks A B f) (hB : B.Separated) : Function.Injective f := by
  intro t₁ t₂ hft
  apply hB t₁ t₂
  intro w
  have eq1 : f (B.run t₁ w) = A.run (f t₁) w := h.run_eq t₁ w
  have eq2 : f (B.run t₂ w) = A.run (f t₂) w := h.run_eq t₂ w
  rw [← h.out_eq (B.run t₁ w), ← h.out_eq (B.run t₂ w), eq1, eq2, hft]

-- LeanTest/HardProblems/BoundedMachines.lean
/-- The pigeonhole bound: a finite machine can exactly track an
output-separated machine only if it has at least as many states. This is a
capacity bound for the stated exact tracking relation. -/
theorem card_le_of_tracks [Fintype S] [Fintype T]
    {A : Machine I O S} {B : Machine I O T} {f : T → S}
    (h : Tracks A B f) (hB : B.Separated) :
    Fintype.card T ≤ Fintype.card S := by
  exact Fintype.card_le_of_injective _ (Tracks.injective h hB)

-- LeanTest/HardProblems/BoundedMachines.lean
/-- Mutual exact tracking forces cardinality parity for finite
output-separated machines. It does not by itself give an isomorphism between
their transition systems. -/
theorem card_eq_of_mutual_tracks [Fintype S] [Fintype T]
    {A : Machine I O S} {B : Machine I O T} {f : T → S} {g : S → T}
    (hf : Tracks A B f) (hg : Tracks B A g)
    (hA : A.Separated) (hB : B.Separated) :
    Fintype.card S = Fintype.card T := by
  exact le_antisymm (card_le_of_tracks hg hA) (card_le_of_tracks hf hB)

-- LeanTest/HardProblems/Positional.lean
/-- A streaming machine with `k` finite-range registers. -/
structure RegisterMachine (base range k : ℕ) where
  init : Fin k → Fin range
  step : (Fin k → Fin range) → Fin base → (Fin k → Fin range)
  output : (Fin k → Fin range) → ℕ

-- LeanTest/HardProblems/Positional.lean
/-- Run a register machine over a finite input stream. -/
def run {base range k : ℕ} (M : RegisterMachine base range k) :
    List (Fin base) → (Fin k → Fin range) :=
  List.foldl M.step M.init

-- LeanTest/HardProblems/Positional.lean
/-- The fixed-width input stream for multiplying `x` and `y`. -/
def multiplicationInput (base n x y : ℕ) [NeZero base] : List (Fin base) :=
  fixedDigits base n x ++ fixedDigits base n y

-- LeanTest/HardProblems/Positional.lean
/-- The machine computes `n`-digit multiplication when its final-state output
is the product for every pair in the full fixed-width range `[0, base^n)`.
In particular, this quantifies over the actual transition-based execution; it
is not the mere existence of an unconstrained function on inputs. -/
def ComputesMultiplicationAt {base range k : ℕ} [NeZero base]
    (M : RegisterMachine base range k) (n : ℕ) : Prop :=
  ∀ x y, x < base ^ n → y < base ^ n →
    M.output (M.run (multiplicationInput base n x y)) = x * y

-- LeanTest/HardProblems/Positional.lean
/-- If a machine computes multiplication at width `n`, fixing the second
operand to one makes final configurations for distinct first operands distinct. -/
theorem finalState_injective {base range k n : ℕ} [NeZero base]
    (M : RegisterMachine base range k) (hbase : 2 ≤ base) (hn : 0 < n)
    (hM : M.ComputesMultiplicationAt n) :
    Function.Injective (fun x : Fin (base ^ n) =>
      M.run (multiplicationInput base n x 1)) := by
  intro x y hxy
  have h1 : (1 : ℕ) < base ^ n := one_lt_pow₀ (by omega) (by omega)
  have hx := hM x 1 x.is_lt h1
  have hy := hM y 1 y.is_lt h1
  simp only [mul_one] at hx hy
  simp only at hxy
  rw [hxy] at hx
  exact Fin.ext (hx.symm.trans hy)

-- LeanTest/HardProblems/Positional.lean
/-- The central configuration-count lower bound: a correct width-`n` machine
needs at least `base^n` different register configurations. -/
theorem state_capacity_lower_bound {base range k n : ℕ} [NeZero base]
    (M : RegisterMachine base range k) (hbase : 2 ≤ base) (hn : 0 < n)
    (hM : M.ComputesMultiplicationAt n) :
    base ^ n ≤ range ^ k := by
  have hinj := finalState_injective M hbase hn hM
  simpa using Fintype.card_le_of_injective _ hinj

-- LeanTest/HardProblems/Positional.lean
/-- Quantitative binary form.  If all register configurations can be encoded
in at most `bits` bits, correctness forces at least `n` bits. -/
theorem linear_bit_lower_bound {base range k n bits : ℕ} [NeZero base]
    (M : RegisterMachine base range k) (hbase : 2 ≤ base) (hn : 0 < n)
    (hM : M.ComputesMultiplicationAt n)
    (hbits : range ^ k ≤ 2 ^ bits) :
    n ≤ bits := by
  have h1 : base ^ n ≤ range ^ k := state_capacity_lower_bound M hbase hn hM
  have h2 : base ^ n ≤ 2 ^ bits := h1.trans hbits
  have h3 : 2 ^ n ≤ base ^ n := Nat.pow_le_pow_left hbase _
  have h4 : 2 ^ n ≤ 2 ^ bits := h3.trans h2
  exact (Nat.pow_le_pow_iff_right (by decide : 1 < 2)).mp h4

-- LeanTest/HardProblems/Positional.lean
/-- For every fixed finite register count and fixed finite value range, some
positive digit width cannot be handled under `ComputesMultiplicationAt`. Thus
no fixed finite configuration space satisfies this interface at every width. -/
theorem no_constant_register_budget (base range k : ℕ) (hbase : 2 ≤ base) :
    ∃ n > 0, ∀ M : RegisterMachine base range k,
      letI : NeZero base := ⟨by omega⟩
      ¬ M.ComputesMultiplicationAt n := by
  letI : NeZero base := ⟨by omega⟩
  have hbase1 : 1 < base := hbase
  by_cases hk : k = 0
  · exact ⟨1, by norm_num, fun M hM => by
      have hcap := state_capacity_lower_bound M hbase (by norm_num : 0 < 1) hM
      simp [hk] at hcap
      omega⟩
  · by_cases hr : range = 0
    · exact ⟨1, by norm_num, fun M hM => by
        have hcap := state_capacity_lower_bound M hbase (by norm_num : 0 < 1) hM
        simp [hr, hk] at hcap
        omega⟩
    · have hk0 : k ≠ 0 := hk
      have hpos : 0 < range ^ k := by positivity
      exact ⟨range ^ k, hpos, fun M hM => by
        have hcap := state_capacity_lower_bound M hbase hpos hM
        exact (Nat.lt_pow_self hbase1).not_ge hcap⟩

مرز. استدلال ضرب یک عملوند را روی یک ثابت می‌کند و کران پایین نسخه‌برداری با تأخیر است. دشواری حساب را ثابت نمی‌کند. برابری کاردینالیته برای ردیابی کافی نیست و خارج‌قسمت‌های تقریبی و ویژهٔ مسئله می‌توانند کوچک‌تر باشند.

دامنه‌های متناهی و ترتیب‌های ناحیه‌ایِ نمایه‌گذاری‌شده با بافت

فرض‌ها. دامنهٔ برنامه ناتهی و متناهی است و هر برنامه ارزشی حقیقی دارد. جداگانه، رده‌ای خانواده‌ای اکیداً پادورد از ترتیب‌های جزئی دارد که بازنمایه‌گذاری یکنوای آن از همانی و ترکیب پیروی می‌کند. در ساخت عینی، نوع‌های مختصات عملکرد یک فانکتور می‌سازند، همهٔ زیرمجموعه‌ها با پیش‌تصویر بازنمایه‌گذاری می‌شوند و به رویارویی‌ها ناحیه‌هایی نسبت داده می‌شود. برای ساخت تحقق‌یافتهٔ مشروط، انتقال رویارویی با سازگاری دقیقِ ناحیه‌ای افزون بر آن فراهم می‌شود.

نتیجه. دامنه‌های متناهی بهینه‌های درونی خود را محقق می‌کنند و بزرگ‌کردن دامنه نمی‌تواند بهینهٔ آن را بدتر کند. دامنه‌ای متناهی می‌تواند با برنامه‌ای بیرون‌مانده شکافی اکید داشته باشد. بازنمایه‌گذاری با پیش‌تصویر یکنواست و از قوانین گفته‌شده پیروی می‌کند. شمولی که به رویارویی‌ها پس‌کشیده شود پیش‌ترتیب است و دقیقاً هنگامی پادتقارنی است که نگاشت رویارویی به ناحیه یک‌به‌یک باشد. نگاشت‌های پوشای عملکرد شمول پیرامونی را حفظ و بازتاب می‌دهند. نگاشتی صریح و ناپوشا شکست بازتاب پیش‌تصویر را نشان می‌دهد، در حالی که تصویر مستقیمی صریح و نایک‌به‌یک، فروپاشی جداگانهٔ چندبه‌یک را نشان می‌دهد. وقتی انتقال رویارویی با سازگاری دقیقِ ناحیه‌ای فراهم شود، زیرترتیب‌های جزئیِ تصویر تحقق‌یافته بازنمایه‌گذاری شکافتهٔ پیش‌تصویر را به ارث می‌برند. یک مثال نقض نشان می‌دهد که بسته‌بودن زیر پیش‌تصویر بدون فرضی افزوده می‌تواند شکست بخورد. (بررسی‌شده با ماشین)

Lean declarations and proofs (FibredOrder.lean, ResourceBounds.lean): HardProblems.Envelope, HardProblems.exists_bounded_optimum, HardProblems.bounded_optimum_mono, HardProblems.exists_strict_envelope_gap, HardProblems.FibredOrder.SplitIndexedOrder, HardProblems.FibredOrder.SplitIndexedOrder.reindexHom, HardProblems.FibredOrder.SplitIndexedOrder.reindex_id_apply, HardProblems.FibredOrder.SplitIndexedOrder.reindex_comp_apply, HardProblems.FibredOrder.performanceRegions, HardProblems.FibredOrder.CompatibleEncounterRegions, HardProblems.FibredOrder.CompatibleEncounterRegions.RealizedRegion, HardProblems.FibredOrder.CompatibleEncounterRegions.instPartialOrderRealizedRegion, HardProblems.FibredOrder.CompatibleEncounterRegions.reindexRealized, HardProblems.FibredOrder.CompatibleEncounterRegions.reindexRealized_val, HardProblems.FibredOrder.CompatibleEncounterRegions.realizedRegionOrder, HardProblems.FibredOrder.CompatibleEncounterRegions.realizedRegionOrder_reindex_val, HardProblems.FibredOrder.ambient_preimage_can_be_unrealized, HardProblems.FibredOrder.EncounterLE, HardProblems.FibredOrder.encounterLE_refl, HardProblems.FibredOrder.encounterLE_trans, HardProblems.FibredOrder.encounterLE_antisymmetric_iff_injective, HardProblems.FibredOrder.constant_region_not_antisymmetric, HardProblems.FibredOrder.surjective_preimage_subset_iff, HardProblems.FibredOrder.equiv_preimage_subset_iff, HardProblems.FibredOrder.equiv_preimage_preserves_inclusion, HardProblems.FibredOrder.equiv_preimage_reflects_inclusion, HardProblems.FibredOrder.nonsurjective_preimage_not_order_reflecting, HardProblems.FibredOrder.noninjective_image_not_order_reflectingاجرا اجرا
-- LeanTest/HardProblems/ResourceBounds.lean
/-- A resource envelope specifies which programs are admitted and requires the
admitted set to be finite. -/
structure Envelope (P : Type*) where
  admits : P → Prop
  finite : Set.Finite {p | admits p}

-- LeanTest/HardProblems/ResourceBounds.lean
/-- A real-valued objective attains a maximum on any nonempty finite resource
envelope. This is an existence theorem, not an optimization procedure. -/
theorem exists_bounded_optimum {P : Type*} (E : Envelope P) (V : P → ℝ)
    (hne : ∃ p, E.admits p) :
    ∃ p, E.admits p ∧ ∀ q, E.admits q → V q ≤ V p := by
  obtain ⟨p, hp, hmax⟩ :=
    Set.exists_max_image {p | E.admits p} V E.finite hne
  exact ⟨p, hp, hmax⟩

-- LeanTest/HardProblems/ResourceBounds.lean
/-- If one finite envelope is included in another, the value of an optimum in
the larger envelope is at least that of an optimum in the smaller envelope. -/
theorem bounded_optimum_mono {P : Type*} (E F : Envelope P) (V : P → ℝ)
    (hEF : ∀ p, E.admits p → F.admits p)
    (p : P) (hp : E.admits p) (_hopt : ∀ q, E.admits q → V q ≤ V p)
    (q : P) (_hq : F.admits q) (hqopt : ∀ r, F.admits r → V r ≤ V q) :
    V p ≤ V q := by
  exact hqopt p (hEF p hp)

-- LeanTest/HardProblems/ResourceBounds.lean
/-- There is a nonempty finite envelope whose internal optimum is strictly
dominated by an excluded program. The witness's objective is unbounded, so the
statement deliberately does not claim that the excluded program is a global
optimum. -/
theorem exists_strict_envelope_gap :
    ∃ (E : Envelope ℕ) (V : ℕ → ℝ) (p : ℕ),
      E.admits p ∧ (∀ q, E.admits q → V q ≤ V p) ∧
      ∃ r, V p < V r := by
  use ⟨fun n => n = 0, by simp⟩
  use fun n => n
  use 0
  simp
  exact ⟨1, by norm_num⟩

-- LeanTest/HardProblems/FibredOrder.lean
/-- A strict contravariant family of partial orders over a category.

The pointwise identity and composition equations record a chosen splitting.
They are the only categorical coherence claimed in this file. -/
structure SplitIndexedOrder (C : Type u) [Category.{v} C] where
  /-- The carrier of the ordered fiber over a context. -/
  Fiber : C → Type w
  /-- The partial order in each fiber. -/
  fiberOrder : (c : C) → PartialOrder (Fiber c)
  /-- Contravariant transport along a context morphism. -/
  reindex : {c d : C} → (c ⟶ d) → Fiber d → Fiber c
  /-- Reindexing along an identity is the identity. -/
  reindex_id : ∀ (c : C) (x : Fiber c), reindex (𝟙 c) x = x
  /-- Reindexing reverses categorical composition. -/
  reindex_comp : ∀ {c d e : C} (f : c ⟶ d) (g : d ⟶ e)
    (x : Fiber e), reindex (f ≫ g) x = reindex f (reindex g x)
  /-- Every reindexing map is monotone in the fiber orders. -/
  reindex_mono : ∀ {c d : C} (f : c ⟶ d) {x y : Fiber d},
    (fiberOrder d).le x y → (fiberOrder c).le (reindex f x) (reindex f y)

-- LeanTest/HardProblems/FibredOrder.lean
/-- Reindexing as an order homomorphism. -/
def reindexHom (P : SplitIndexedOrder C) {c d : C} (f : c ⟶ d) :
    P.Fiber d →o P.Fiber c where
  toFun := P.reindex f
  monotone' := by
    intro x y hxy
    exact P.reindex_mono f hxy

-- LeanTest/HardProblems/FibredOrder.lean
@[simp]
theorem reindex_id_apply (P : SplitIndexedOrder C) (c : C) (x : P.Fiber c) :
    P.reindex (𝟙 c) x = x :=
  P.reindex_id c x

-- LeanTest/HardProblems/FibredOrder.lean
@[simp]
theorem reindex_comp_apply (P : SplitIndexedOrder C) {c d e : C}
    (f : c ⟶ d) (g : d ⟶ e) (x : P.Fiber e) :
    P.reindex (f ≫ g) x = P.reindex f (P.reindex g x) :=
  P.reindex_comp f g x

-- LeanTest/HardProblems/FibredOrder.lean
/-- The context-indexed partial order of all candidate performance regions
induced by a functor of performance-coordinate types. Context morphisms act
on points by `Perf.map`; candidate regions move in the opposite direction by
preimage. Realizability by an encounter or program is not part of this data. -/
def performanceRegions {C : Type u} [Category.{v} C] (Perf : C ⥤ Type w) :
    SplitIndexedOrder C where
  Fiber c := Set (Perf.obj c)
  fiberOrder _ := inferInstance
  reindex f A := Perf.map f ⁻¹' A
  reindex_id c A := by
    ext x
    simp
  reindex_comp f g A := by
    ext x
    simp
  reindex_mono := by
    intro c d f A B hAB
    exact Set.preimage_mono hAB

-- LeanTest/HardProblems/FibredOrder.lean
/-- Encounter data sufficient to make realized performance regions stable
under contravariant context change.

No identity or composition equation is imposed on `transport` at the level of
raw encounters. Only its observable effect on regions is stored. That exact
compatibility is enough to induce split reindexing after duplicate encounter
witnesses have been forgotten. -/
structure CompatibleEncounterRegions {C : Type u} [Category.{v} C]
    (Perf : C ⥤ Type w) where
  /-- The type of admitted encounters in each context. -/
  Encounter : C → Type e
  /-- The candidate region actually realized by an encounter. -/
  region : (c : C) → Encounter c → Set (Perf.obj c)
  /-- Contravariant transport of encounters along a context map. -/
  transport : {c d : C} → (c ⟶ d) → Encounter d → Encounter c
  /-- Transport realizes exactly the preimage of the target encounter's
  region. -/
  region_transport : ∀ {c d : C} (f : c ⟶ d) (E : Encounter d),
    region c (transport f E) = Perf.map f ⁻¹' region d E

-- LeanTest/HardProblems/FibredOrder.lean
/-- A region together with the proposition that some admitted encounter
realizes it. Different encounter witnesses with the same region determine the
same element of this subtype. -/
def RealizedRegion (D : CompatibleEncounterRegions Perf) (c : C) :=
  {A : Set (Perf.obj c) // ∃ E : D.Encounter c, D.region c E = A}

-- LeanTest/HardProblems/FibredOrder.lean
/-- Realized regions inherit the antisymmetric subset order from their
underlying sets; encounter witnesses do not participate in equality. -/
instance instPartialOrderRealizedRegion (D : CompatibleEncounterRegions Perf)
    (c : C) : PartialOrder (D.RealizedRegion c) :=
  PartialOrder.lift Subtype.val Subtype.val_injective

-- LeanTest/HardProblems/FibredOrder.lean
/-- Reindex a realized region by preimage. Compatibility supplies a transported
encounter witnessing that the resulting region is realized in the source
context. -/
def reindexRealized (D : CompatibleEncounterRegions Perf) {c d : C}
    (f : c ⟶ d) (A : D.RealizedRegion d) : D.RealizedRegion c :=
  ⟨Perf.map f ⁻¹' A.1, by
    rcases A.2 with ⟨E, hE⟩
    refine ⟨D.transport f E, ?_⟩
    rw [D.region_transport, hE]⟩

-- LeanTest/HardProblems/FibredOrder.lean
/-- The underlying set of a reindexed realized region is transparently the
ambient preimage. -/
@[simp]
theorem reindexRealized_val (D : CompatibleEncounterRegions Perf) {c d : C}
    (f : c ⟶ d) (A : D.RealizedRegion d) :
    (D.reindexRealized f A).1 = Perf.map f ⁻¹' A.1 :=
  rfl

-- LeanTest/HardProblems/FibredOrder.lean
/-- Realized regions form a split context-indexed partial order. The split laws
hold for region values; they do not assert coherent identity or composition
laws for the chosen raw encounter transports. -/
def realizedRegionOrder (D : CompatibleEncounterRegions Perf) :
    SplitIndexedOrder C where
  Fiber c := D.RealizedRegion c
  fiberOrder _ := inferInstance
  reindex := D.reindexRealized
  reindex_id c A := by
    apply Subtype.ext
    ext x
    simp [reindexRealized]
  reindex_comp f g A := by
    apply Subtype.ext
    ext x
    simp [reindexRealized]
  reindex_mono := by
    intro c d f A B hAB
    exact Set.preimage_mono hAB

-- LeanTest/HardProblems/FibredOrder.lean
/-- The reindexing stored in `realizedRegionOrder` has the same transparent
preimage value as `reindexRealized`. -/
@[simp]
theorem realizedRegionOrder_reindex_val
    (D : CompatibleEncounterRegions Perf) {c d : C}
    (f : c ⟶ d) (A : D.RealizedRegion d) :
    ((D.realizedRegionOrder).reindex f A).1 = Perf.map f ⁻¹' A.1 :=
  rfl

-- LeanTest/HardProblems/FibredOrder.lean
/-- Without compatible encounter transport, an ambient preimage need not be
among the regions declared realized in the source context. Both declared
families below are nonempty, yet the preimage of the realized target region is
not a realized source region. -/
theorem ambient_preimage_can_be_unrealized :
    let f : Unit → Bool := fun _ ↦ false
    let sourceRealized : Set (Set Unit) := {∅}
    let targetRegion : Set Bool := {false}
    let targetRealized : Set (Set Bool) := {targetRegion}
    sourceRealized.Nonempty ∧ targetRealized.Nonempty ∧
      targetRegion ∈ targetRealized ∧
      f ⁻¹' targetRegion ∉ sourceRealized := by
  simp

-- LeanTest/HardProblems/FibredOrder.lean
/-- Compare encounters by inclusion of their attainable regions. This is the
pullback of the fiber order along an encounter-to-region map. -/
def EncounterLE {E : Type u} {P : Type w} (region : E → Set P)
    (x y : E) : Prop :=
  region x ⊆ region y

-- LeanTest/HardProblems/FibredOrder.lean
/-- Region comparison pulled back to encounters is reflexive. -/
theorem encounterLE_refl {E : Type u} {P : Type w} (region : E → Set P)
    (x : E) : EncounterLE region x x :=
  Set.Subset.rfl

-- LeanTest/HardProblems/FibredOrder.lean
/-- Region comparison pulled back to encounters is transitive. -/
theorem encounterLE_trans {E : Type u} {P : Type w} (region : E → Set P)
    {x y z : E} (hxy : EncounterLE region x y)
    (hyz : EncounterLE region y z) : EncounterLE region x z :=
  hxy.trans hyz

-- LeanTest/HardProblems/FibredOrder.lean
/-- The pulled-back comparison is antisymmetric exactly when the
encounter-to-region map is injective. Without injectivity it is only a
preorder on encounters; quotienting encounters by equal regions restores a
partial order. -/
theorem encounterLE_antisymmetric_iff_injective {E : Type u} {P : Type w}
    (region : E → Set P) :
    (∀ ⦃x y : E⦄, EncounterLE region x y →
      EncounterLE region y x → x = y) ↔ Function.Injective region := by
  constructor
  · intro h x y hxy
    apply h
    · simp [EncounterLE, hxy]
    · simp [EncounterLE, hxy]
  · intro hinj x y hxy hyx
    exact hinj (Set.Subset.antisymm hxy hyx)

-- LeanTest/HardProblems/FibredOrder.lean
/-- Two distinct encounters assigned the same region witness the failure of
antisymmetry. The failure is in the encounter presentation, not in the subset
order on regions. -/
theorem constant_region_not_antisymmetric :
    let region : Bool → Set Unit := fun _ ↦ ∅
    EncounterLE region false true ∧ EncounterLE region true false ∧
      false ≠ true := by
  simp [EncounterLE]

-- LeanTest/HardProblems/FibredOrder.lean
/-- Preimage along a surjective point map preserves and reflects inclusion.
Bijectivity is therefore sufficient but not necessary for exact comparison
transport at the level of arbitrary candidate regions. -/
theorem surjective_preimage_subset_iff {X : Type u} {Y : Type w}
    (f : X → Y) (hf : Function.Surjective f) (A B : Set Y) :
    f ⁻¹' A ⊆ f ⁻¹' B ↔ A ⊆ B := by
  constructor
  · intro h y hy
    rcases hf y with ⟨x, rfl⟩
    exact h hy
  · exact Set.preimage_mono

-- LeanTest/HardProblems/FibredOrder.lean
/-- A bijective coordinate change preserves and reflects inclusion after
contravariant reindexing. Hence an exact relabeling neither creates nor erases
comparisons between candidate performance regions. -/
theorem equiv_preimage_subset_iff {X : Type u} {Y : Type w}
    (e : X ≃ Y) (A B : Set Y) :
    e ⁻¹' A ⊆ e ⁻¹' B ↔ A ⊆ B :=
  surjective_preimage_subset_iff e e.surjective A B

-- LeanTest/HardProblems/FibredOrder.lean
/-- The preservation direction of exact coordinate invariance. -/
theorem equiv_preimage_preserves_inclusion {X : Type u} {Y : Type w}
    (e : X ≃ Y) {A B : Set Y} (h : A ⊆ B) :
    e ⁻¹' A ⊆ e ⁻¹' B :=
  (equiv_preimage_subset_iff e A B).2 h

-- LeanTest/HardProblems/FibredOrder.lean
/-- The reflection direction of exact coordinate invariance. It depends on
surjectivity and is unavailable for a general non-surjective coordinate map. -/
theorem equiv_preimage_reflects_inclusion {X : Type u} {Y : Type w}
    (e : X ≃ Y) {A B : Set Y} (h : e ⁻¹' A ⊆ e ⁻¹' B) :
    A ⊆ B :=
  (equiv_preimage_subset_iff e A B).1 h

-- LeanTest/HardProblems/FibredOrder.lean
/-- Explicit failure of preimage order reflection for a non-surjective point
map. The injective constant map `Unit → Bool` misses `true`, so the whole Bool
region and `{false}` have equal preimages even though the former is not
contained in the latter. The issue here is failure of surjectivity, not
many-to-one collapse. -/
theorem nonsurjective_preimage_not_order_reflecting :
    let f : Unit → Bool := fun _ ↦ false
    let A : Set Bool := Set.univ
    let B : Set Bool := {false}
    ¬ Function.Surjective f ∧
      f ⁻¹' A = f ⁻¹' B ∧ f ⁻¹' A ⊆ f ⁻¹' B ∧ ¬ A ⊆ B := by
  dsimp
  constructor
  · intro hf
    rcases hf true with ⟨x, hx⟩
    simp at hx
  constructor
  · ext x
    simp
  constructor
  · intro x hx
    simp
  · intro h
    have : true ∈ ({false} : Set Bool) := h (Set.mem_univ true)
    simp at this

-- LeanTest/HardProblems/FibredOrder.lean
/-- Explicit failure of direct-image order reflection for a noninjective point
map. The constant map `Bool → Unit` merges `false` and `true`, so their
singleton regions have equal direct images although neither singleton is
contained in the other. This is the separate many-to-one failure mode. -/
theorem noninjective_image_not_order_reflecting :
    let f : Bool → Unit := fun _ ↦ ()
    let A : Set Bool := {false}
    let B : Set Bool := {true}
    ¬ Function.Injective f ∧
      f '' A = f '' B ∧ f '' A ⊆ f '' B ∧ ¬ A ⊆ B := by
  dsimp
  constructor
  · intro hf
    have h : false = true := hf rfl
    simp at h
  constructor
  · ext x
    simp
  constructor
  · intro x hx
    simp
  · intro h
    have : false ∈ ({true} : Set Bool) := h (by simp)
    simp at this

مرز. متناهی‌بودن بهینه‌ساز را محاسبه‌پذیر یا ارزان نمی‌کند. ساختِ محیطی همهٔ زیرمجموعه‌ها را به کار می‌گیرد، و ساختِ تحقق‌یافته انتقالِ سازگارِ کافیِ مواجهه‌ها را فرض می‌گیرد و بستار را از آن نتیجه می‌گیرد؛ بستار در سطح ناحیه به‌تنهایی برای تعریف بازنمایه‌گذاری بس بود. هیچ‌یک از دو ساخت بستارِ روبه‌بالا را نه لازم دارد و نه اثبات می‌کند. این صورت‌بندی مقولهٔ کلِ گروتندیک و لیفت‌های دکارتی‌اش را می‌سازد، اما خارج‌قسمتِ مواجهه‌های خام را نمی‌سازد. ناوردایی نسبت به مجموعهٔ مختصات هم‌ارزیِ برنامه‌ها یا سیستم‌ها را ثابت نمی‌کند. مثال‌های شکستِ پیش‌تصویر و تصویرِ مستقیم به دو عمل متفاوت مربوط‌اند و نباید با هم آمیخته شوند.

مقولهٔ کل و لیفت‌های دکارتی‌اش

فرض‌ها. یک ترتیب نمایه‌دارِ اسپلیت بر یک مقولهٔ پایه از بافت‌ها: در هر تار یک ترتیب جزئی، بازنمایه‌گذاریِ پادوردا و یکنوا، و قانون‌های نقطه‌به‌نقطهٔ همانی و ترکیب.

نتیجه. داده‌های نمایه‌دار به‌صورت فانکتوری پادوردا به مقوله‌ها بسته‌بندی می‌شوند، و ساختِ پادوردای گروتندیک در mathlib مقوله‌ای کل با یک تصویر به پایه به دست می‌دهد. این تصویر به معنای استاندارد یک تاربندی است. انتقالی که به‌عنوان داده عرضه شده دقیقاً دامنهٔ لیفتِ دکارتیِ کانونی است، و هر تارِ جزئاً مرتب با مقولهٔ تارِ استانداردِ همان تصویر هم‌ارز است. (بررسی‌شده با ماشین)

Lean declarations and proofs (GrothendieckFibration.lean): HardProblems.FibredOrder.reindexFunctor, HardProblems.FibredOrder.toCatFunctor, HardProblems.FibredOrder.toCatPseudofunctor, HardProblems.FibredOrder.total, HardProblems.FibredOrder.projection, HardProblems.FibredOrder.totalObj, HardProblems.FibredOrder.cartesianLift, HardProblems.FibredOrder.cartesianLift_isStronglyCartesian, HardProblems.FibredOrder.projection_isFibered, HardProblems.FibredOrder.reindex_is_cartesian_lift, HardProblems.FibredOrder.fiberFunctor, HardProblems.FibredOrder.fiberFunctor_isEquivalence, HardProblems.FibredOrder.fiberEquivاجرا
-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- Reindexing along one arrow, regarded as a functor between thin categories. -/
def reindexFunctor (P : SplitIndexedOrder C) {c d : C} (f : c ⟶ d) :
    P.Fiber d ⥤ P.Fiber c where
  obj := P.reindex f
  map h := homOfLE (P.reindex_mono f h.le)

-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- Package the indexed poset as a genuine contravariant functor into `Cat`. -/
def toCatFunctor (P : SplitIndexedOrder C) : Cᵒᵖ ⥤ Cat.{w, w} where
  obj c := Cat.of (P.Fiber c.unop)
  map f := (reindexFunctor P f.unop).toCatHom
  map_id c := by
    apply Cat.Hom.ext
    apply CategoryTheory.Functor.ext (fun x => P.reindex_id c.unop x)
  map_comp f g := by
    apply Cat.Hom.ext
    apply CategoryTheory.Functor.ext (fun x => P.reindex_comp g.unop f.unop x)

-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- The strict functor, promoted to the pseudofunctor expected by mathlib's
contravariant Grothendieck construction. -/
abbrev toCatPseudofunctor (P : SplitIndexedOrder C) :
    Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat.{w, w} :=
  (toCatFunctor P).toPseudoFunctor'

-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- The total category of the indexed order. -/
abbrev total (P : SplitIndexedOrder C) : Type _ :=
  Pseudofunctor.CoGrothendieck (toCatPseudofunctor P)

-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- Projection of the total category to the original base. -/
abbrev projection (P : SplitIndexedOrder C) : total P ⥤ C :=
  Pseudofunctor.CoGrothendieck.forget (toCatPseudofunctor P)

-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- The total object represented by `x` in the fiber over `c`. -/
abbrev totalObj (P : SplitIndexedOrder C) (c : C) (x : P.Fiber c) : total P :=
  { base := c, fiber := x }

-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- The canonical arrow from the reindexed object to the original object. -/
def cartesianLift (P : SplitIndexedOrder C) {c d : C} (f : c ⟶ d) (x : P.Fiber d) :
    totalObj P c (P.reindex f x) ⟶ totalObj P d x where
  base := f
  fiber := 𝟙 _

-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- The canonical reindexing arrow is strongly cartesian. -/
theorem cartesianLift_isStronglyCartesian (P : SplitIndexedOrder C)
    {c d : C} (f : c ⟶ d) (x : P.Fiber d) :
    (projection P).IsStronglyCartesian f (cartesianLift P f x) := by
  change (projection P).IsStronglyCartesian f
    (Pseudofunctor.CoGrothendieck.cartesianLift (F := toCatPseudofunctor P) x f)
  exact Pseudofunctor.CoGrothendieck.isStronglyCartesian_homCartesianLift
    (F := toCatPseudofunctor P) x f

-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- The projection is a fibration over the original base category. -/
theorem projection_isFibered (P : SplitIndexedOrder C) :
    (projection P).IsFibered := by
  infer_instance

-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- The chosen transport is exactly the domain of the canonical cartesian lift,
and that lift satisfies mathlib's cartesian universal property. -/
theorem reindex_is_cartesian_lift (P : SplitIndexedOrder C)
    {c d : C} (f : c ⟶ d) (x : P.Fiber d) :
    (projection P).IsCartesian f (cartesianLift P f x) ∧
      Pseudofunctor.CoGrothendieck.domainCartesianLift
        (F := toCatPseudofunctor P) x f = totalObj P c (P.reindex f x) := by
  constructor
  · letI : (projection P).IsStronglyCartesian f (cartesianLift P f x) :=
      cartesianLift_isStronglyCartesian P f x
    exact Functor.IsStronglyCartesian.isCartesian_of_isStronglyCartesian
      (projection P) f (cartesianLift P f x)
  · rfl

-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- The original thin category maps to the standard fiber of the projection. -/
abbrev fiberFunctor (P : SplitIndexedOrder C) (c : C) :
    P.Fiber c ⥤ (projection P).Fiber c :=
  CategoryTheory.Functor.Fiber.inducedFunctor
    (Pseudofunctor.CoGrothendieck.comp_const (toCatPseudofunctor P) c)

-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- The standard fiber category of the projection is equivalent to the original
partial order regarded as a thin category. -/
theorem fiberFunctor_isEquivalence (P : SplitIndexedOrder C) (c : C) :
    (fiberFunctor P c).IsEquivalence := by
  exact HasFibers.equiv c

-- LeanTest/HardProblems/GrothendieckFibration.lean
/-- Goal 4 in explicit categorical form. -/
noncomputable def fiberEquiv (P : SplitIndexedOrder C) (c : C) :
    P.Fiber c ≌ (projection P).Fiber c := by
  letI : (fiberFunctor P c).IsEquivalence := fiberFunctor_isEquivalence P c
  exact (fiberFunctor P c).asEquivalence

مرز. این داده‌ها برای ساختن یک تاربندی به کار رفته‌اند و نه بیشتر. یک اپ‌تاربندی انتقالِ هم‌وردا می‌خواست، یعنی الحاقی‌های چپِ بازنمایه‌گذاری، که این ساختار عرضه نمی‌کند؛ نه اپ‌تاربندی‌ای ساخته شده و نه رد شده است. کارتی بعدی نشان می‌دهد خودِ اسپلیت هم اجباری بوده، نه انتخابی: با تارهای جزئاً مرتب، هیچ ارائهٔ نااسپلیتی وجود ندارد. نازک‌بودنِ تارها یکتاییِ تجزیه‌های تاربه‌تار را خودکار می‌کند، اما خودِ خاصیت دکارتی از ساختِ عمومی به ارث می‌رسد و به جزئاً مرتب‌بودنِ تارها وابسته نیست. هیچ چیزی اشیای تارهای بی‌ربط را بدون ریختِ بافتِ عرضه‌شده یکی نمی‌گیرد.

مرزها به‌عنوان عملگرهای بستار

فرض‌ها. مجموعه‌ای از تبدیل‌های اولیه بر یک فضای وضعیت؛ یک نگاشتِ مشاهده بر وضعیت‌ها؛ رفتارهایی با پنهان‌سازی در امتداد یک تصویرِ سیگنال؛ و جداگانه، دو مجموعهٔ مرتب از امکان‌ها که با یک نگاشتِ بازنمایه‌گذاریِ یکنوا به هم مربوط‌اند و هر یک عملگرِ بستاری دارد.

نتیجه. ساختنِ مجموعهٔ دست‌یافتنی، اشباعِ مشاهده‌ای، و پنهان‌سازی و سپس پول‌بک در امتداد تصویر، عملگرهای بستار به معنای mathlib هستند: گسترنده، یکنوا و خودتوان. واردکردنِ تبدیلی که همین حالا نقطه‌به‌نقطه دست‌یافتنی است مجموعهٔ دست‌یافتنی را ثابت نگه می‌دارد، و ریزترکردنِ نگاشتِ مشاهده هرگز اشباعی را بزرگ نمی‌کند. افزودنِ حرکتِ همیشه-درست به مجموعهٔ حرکتِ تهی روی بولی‌ها دسترسِ یک وضعیتِ آغازین را اکیداً بزرگ می‌کند، و شاهد در خودِ گزاره است نه پشتِ یک وجودی. پنهان‌سازی اتصال متقابل را فقط تا حدِ شمول حفظ می‌کند، و مثالی صریح آن شمول را اکید می‌کند. مثالی متناهی و صریح نشان می‌دهد عملگرِ بستار لازم نیست با نگاشتِ بازنمایه‌گذاریِ یکنوا جابه‌جا شود، و شکستِ برداشتِ تاربه‌تار همین است. هر نسخهٔ محلیِ تعریفِ وام‌گرفته که در گزاره‌ای اینجا ظاهر می‌شود با یک لمِ توافق به اصلِ خود در ماژولِ خانگی سنجاق شده است، پس گزاره‌ها نمی‌توانند از آنچه بقیهٔ همراه اثبات می‌کند فاصله بگیرند. (بررسی‌شده با ماشین)

Lean declarations and proofs (BoundaryClosures.lean): HardProblems.ClosureUnification.reachSet, HardProblems.ClosureUnification.reachClosure, HardProblems.ClosureUnification.reachSet_insert_programmed, HardProblems.ClosureUnification.exists_strict_enlargement, HardProblems.ClosureUnification.indistSaturation, HardProblems.ClosureUnification.indistClosure, HardProblems.ClosureUnification.indistClosure_le_of_refines, HardProblems.ClosureUnification.behavioralClosure, HardProblems.ClosureUnification.hide_interconnect_subset_and_strict, HardProblems.ClosureUnification.ReindexCommutes, HardProblems.ClosureUnification.addFalseClosure, HardProblems.ClosureUnification.reindex_closure_need_not_commute, HardProblems.ClosureUnification.reachSet_insert_const_true_strict, HardProblems.ClosureUnification.reach_agrees, HardProblems.ClosureUnification.indist_agrees, HardProblems.ClosureUnification.hide_agrees, HardProblems.ClosureUnification.programmed_agrees, HardProblems.ClosureUnification.robustActions_agrees, HardProblems.ClosureUnification.interconnect_agreesاجرا
-- LeanTest/HardProblems/BoundaryClosures.lean
/-- The set of states reachable from a set of starting states. -/
def reachSet {X : Type u} (G : Set (X → X)) (S : Set X) : Set X :=
  {z | ∃ x ∈ S, Reach G x z}

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- Goal 1. `reachSet G` is a closure operator on `Set X`. -/
def reachClosure {X : Type u} (G : Set (X → X)) : ClosureOperator (Set X) where
  toFun := reachSet G
  monotone' := by
    intro S T hST z hz
    rcases hz with ⟨x, hxS, hxz⟩
    exact ⟨x, hST hxS, hxz⟩
  le_closure' := by
    intro S x hx
    exact ⟨x, hx, .refl⟩
  idempotent' := by
    intro S
    apply Set.Subset.antisymm
    · rintro z ⟨y, ⟨x, hx, hxy⟩, hyz⟩
      exact ⟨x, hx, hxy.trans hyz⟩
    · rintro z hz
      exact ⟨z, hz, .refl⟩

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- Goal 2. A programmed transformation adds no reachability. -/
theorem reachSet_insert_programmed {X : Type u} (G : Set (X → X))
    {g : X → X} (hg : Programmed G g) (S : Set X) :
    reachSet (insert g G) S = reachSet G S := by
  apply Set.Subset.antisymm
  · rintro z ⟨x, hx, hreach⟩
    exact ⟨x, hx, hreach.insert_programmed hg⟩
  · rintro z ⟨x, hx, hreach⟩
    exact ⟨x, hx, by
      induction hreach with
      | refl => exact .refl
      | tail hstep hmem hz ih => exact .tail ih (Set.mem_insert_of_mem _ hmem) hz⟩

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- Goal 3. The concrete two-state system `Bool`, with no old primitives,
initial state `false`, and the new constant-`true` primitive, strictly enlarges
reachable closure. -/
theorem exists_strict_enlargement :
    ∃ (X : Type) (G : Set (X → X)) (g : X → X) (S : Set X),
      reachSet G S ⊂ reachSet (insert g G) S := by
  refine ⟨Bool, ∅, (fun _ => true), {false}, ?_⟩
  constructor
  · rintro z ⟨x, hx, hreach⟩
    exact ⟨x, hx, by
      induction hreach with
      | refl => exact .refl
      | tail hstep hmem hz => exact False.elim hmem⟩
  · intro hreverse
    have htrue : true ∈ reachSet (insert (fun _ : Bool => true) ∅) {false} :=
      ⟨false, by simp,
        Reach.tail (g := fun _ : Bool => true) Reach.refl (by simp) rfl⟩
    have hold : true ∈ reachSet (∅ : Set (Bool → Bool)) {false} := hreverse htrue
    rcases hold with ⟨x, hx, hreach⟩
    have hxfalse : x = false := by simpa using hx
    subst x
    have hempty : ∀ z : Bool, Reach (∅ : Set (Bool → Bool)) false z → z = false := by
      intro z hz
      induction hz with
      | refl => rfl
      | tail hstep hmem heq => exact False.elim hmem
    have : true = false := hempty true hreach
    cases this

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- Saturation of states under equality of observations. -/
def indistSaturation {S : Type u} {O : Type v} (observe : S → O)
    (T : Set S) : Set S :=
  {y | ∃ x ∈ T, Indist observe x y}

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- Goal 4. Saturation under observational indistinguishability is a closure
operator on `Set S`. -/
def indistClosure {S : Type u} {O : Type v} (observe : S → O) :
    ClosureOperator (Set S) where
  toFun := indistSaturation observe
  monotone' := by
    rintro A B h y ⟨x, hx, hxy⟩
    exact ⟨x, h hx, hxy⟩
  le_closure' := by
    intro A x hx
    exact ⟨x, hx, rfl⟩
  idempotent' := by
    intro A
    apply Set.Subset.antisymm
    · rintro y ⟨x, ⟨z, hz, hzx⟩, hxy⟩
      exact ⟨z, hz, hzx.trans hxy⟩
    · intro y hy
      exact ⟨y, hy, rfl⟩

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- Goal 4'. If `coarse = k ∘ fine`, fine observational saturation is contained
in coarse observational saturation: a finer experiment separates at least as
many states. -/
theorem indistClosure_le_of_refines {S : Type u} {F : Type v} {Cc : Type w}
    (fine : S → F) (coarse : S → Cc) (k : F → Cc) (hk : coarse = k ∘ fine) :
    ∀ T : Set S, indistClosure fine T ⊆ indistClosure coarse T := by
  intro T y hy
  rcases hy with ⟨x, hx, hxy⟩
  refine ⟨x, hx, ?_⟩
  show coarse x = coarse y
  rw [hk]
  exact congrArg k hxy

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- Pulling a hidden behavior back along the trajectory projection gives a
closure operator on behaviors. -/
def behavioralClosure {T : Type u} {W : Type v} {V : Type w} (f : W → V) :
    ClosureOperator (Behavior T W) where
  toFun B := {w | f ∘ w ∈ hide f B}
  monotone' := by
    rintro B C h w ⟨w', hw', heq⟩
    exact ⟨w', h hw', heq⟩
  le_closure' := by
    intro B w hw
    exact ⟨w, hw, rfl⟩
  idempotent' := by
    intro B
    apply Set.Subset.antisymm
    · rintro w ⟨w', ⟨w'', hw'', heq'⟩, heq⟩
      exact ⟨w'', hw'', heq'.trans heq⟩
    · intro w hw
      exact ⟨w, hw, rfl⟩

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- Goal 5. Hiding after interconnection is always contained in interconnecting
after hiding. The displayed `Bool`/`Unit` example makes this inclusion strict,
so hiding is not a meet (lattice) homomorphism. -/
theorem hide_interconnect_subset_and_strict :
    (∀ {T W V : Type} (f : W → V) (B₁ B₂ : Behavior T W),
      hide f (interconnect B₁ B₂) ⊆ interconnect (hide f B₁) (hide f B₂)) ∧
    (let B₁ : Behavior Unit Bool := {w | w () = false}
     let B₂ : Behavior Unit Bool := {w | w () = true}
     hide (fun _ : Bool => ()) (interconnect B₁ B₂) ⊂
       interconnect (hide (fun _ : Bool => ()) B₁)
         (hide (fun _ : Bool => ()) B₂)) := by
  constructor
  · intro T W V f B₁ B₂ v hv
    rcases hv with ⟨w, ⟨hw₁, hw₂⟩, rfl⟩
    exact ⟨⟨w, hw₁, rfl⟩, ⟨w, hw₂, rfl⟩⟩
  · dsimp
    constructor
    · intro v hv
      rcases hv with ⟨w, ⟨hw₁, hw₂⟩, rfl⟩
      exact ⟨⟨w, hw₁, rfl⟩, ⟨w, hw₂, rfl⟩⟩
    · intro hreverse
      let v : Unit → Unit := fun _ => ()
      have hv : v ∈ interconnect
          (hide (fun _ : Bool => ()) {w : Unit → Bool | w () = false})
          (hide (fun _ : Bool => ()) {w : Unit → Bool | w () = true}) := by
        constructor
        · exact ⟨(fun _ => false), rfl, rfl⟩
        · exact ⟨(fun _ => true), rfl, rfl⟩
      have hv' := hreverse hv
      rcases hv' with ⟨w, ⟨hwf, hwt⟩, _⟩
      simp only [Set.mem_setOf_eq] at hwf hwt
      rw [hwf] at hwt
      contradiction

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- A reindexing order homomorphism commutes with two fiberwise closures when
the two possible composites agree pointwise. -/
def ReindexCommutes {P : Type u} {Q : Type v} [Preorder P] [Preorder Q]
    (r : Q →o P) (cQ : ClosureOperator Q) (cP : ClosureOperator P) : Prop :=
  ∀ x, r (cQ x) = cP (r x)

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- The closure on `Set Bool` that adjoins `false`. -/
def addFalseClosure : ClosureOperator (Set Bool) where
  toFun S := S ∪ {false}
  monotone' := by
    intro A B h x hx
    exact hx.elim (fun hxA => Or.inl (h hxA)) Or.inr
  le_closure' := by
    intro A x hx
    exact Or.inl hx
  idempotent' := by
    intro A
    ext x
    simp only [Set.mem_union, Set.mem_singleton_iff]
    tauto

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- Reindexing by inverse image along the map `Unit → Bool` selecting `false`
does not commute with `addFalseClosure` and the identity closure on `Set Unit`.
Both carriers are nonempty, nontrivial finite posets. -/
theorem reindex_closure_need_not_commute :
    let r : Set Bool →o Set Unit :=
      { toFun := Set.preimage (fun _ : Unit => false)
        monotone' := by intro A B h; exact Set.preimage_mono h }
    ¬ ReindexCommutes r addFalseClosure (ClosureOperator.id (Set Unit)) := by
  intro r h
  have heq := h (∅ : Set Bool)
  have hunit : () ∈ r (addFalseClosure (∅ : Set Bool)) := Or.inr rfl
  rw [heq] at hunit
  exact hunit

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- The strict enlargement of Goal 3, restated with its witness in the
statement rather than behind an existential: adjoining the constant-`true`
move to the empty move set strictly enlarges what is reachable from
`{false}`. -/
theorem reachSet_insert_const_true_strict :
    reachSet (∅ : Set (Bool → Bool)) {false} ⊂
      reachSet (insert (fun _ => true) (∅ : Set (Bool → Bool))) {false} := by
  constructor
  · rintro z ⟨x, hx, h⟩
    refine ⟨x, hx, ?_⟩
    induction h with
    | refl => exact Reach.refl
    | tail _ hg hz ih => exact Reach.tail ih (Set.mem_insert_of_mem _ hg) hz
  · intro hrev
    have htrue : true ∈
        reachSet (insert (fun _ => true) (∅ : Set (Bool → Bool))) {false} :=
      ⟨false, rfl, Reach.tail Reach.refl (Set.mem_insert _ _) rfl⟩
    rcases hrev htrue with ⟨x, hx, h⟩
    cases h with
    | refl => simp at hx
    | tail _ hg _ => simp at hg

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- The local `Reach` is the project's `Reach`, definitionally. -/
theorem reach_agrees {X : Type u} (G : Set (X → X)) (x z : X) :
    ClosureUnification.Reach G x z ↔ HardProblems.Reach G x z := by
  constructor
  · intro h
    induction h with
    | refl => exact HardProblems.Reach.refl
    | tail hxy hg hz ih => exact HardProblems.Reach.tail ih hg hz
  · intro h
    induction h with
    | refl => exact ClosureUnification.Reach.refl
    | tail hxy hg hz ih => exact ClosureUnification.Reach.tail ih hg hz

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- The local `Indist` is `InformationOrder.Indist`, definitionally. -/
theorem indist_agrees {S : Type u} {O : Type v} (observe : S → O) (x y : S) :
    ClosureUnification.Indist observe x y ↔
      InformationOrder.Indist observe x y :=
  Iff.rfl

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- The local `hide` is `Behavioral.hide`, definitionally. -/
theorem hide_agrees {T : Type u} {W : Type v} {V : Type w}
    (f : W → V) (B : ClosureUnification.Behavior T W) :
    ClosureUnification.hide f B = Behavioral.hide f B := by
  rfl

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- The local `Programmed` is the project's `Programmed`: both quantify the
respective `Reach`, and `reach_agrees` bridges those. -/
theorem programmed_agrees {X : Type u} (G : Set (X → X)) (g : X → X) :
    ClosureUnification.Programmed G g ↔ HardProblems.Programmed G g := by
  constructor
  · intro h y
    exact (reach_agrees G y (g y)).mp (h y)
  · intro h y
    exact (reach_agrees G y (g y)).mpr (h y)

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- The local `RobustActions` is `InformationOrder.RobustActions`,
definitionally. -/
theorem robustActions_agrees {S : Type u} {O : Type v} {A : Type w}
    (observe : S → O) (Acceptable : S → A → Prop) (x : S) :
    ClosureUnification.RobustActions observe Acceptable x =
      InformationOrder.RobustActions observe Acceptable x :=
  rfl

-- LeanTest/HardProblems/BoundaryClosures.lean
/-- The local `interconnect` is `Behavioral.interconnect`, definitionally. -/
theorem interconnect_agrees {T : Type u} {W : Type v}
    (B₁ B₂ : ClosureUnification.Behavior T W) :
    ClosureUnification.interconnect B₁ B₂ = Behavioral.interconnect B₁ B₂ :=
  rfl

مرز. این عملگرهای بستار بر مجموعه‌های امکانی عمل می‌کنند که مرزهای اطلاعات، کنش و رفتار القا کرده‌اند؛ ادعا نشده که هر عملگرِ کتاب این شکل را دارد، و نگاشتِ ناحیهٔ دست‌یافتنیِ مرزِ منابع در میان آن‌ها نیست. تقویتِ همریختیِ مشبکه‌ای رد شده است، نه صرفاً باز گذاشته شده. جابه‌جایی با بازنمایه‌گذاری شرطی اضافه است که باید برای هر جفتِ بافت عرضه شود؛ مثالِ نقض نشان می‌دهد از قانون‌های بستار به‌تنهایی نتیجه نمی‌شود.

تکمیلِ گروهی ترتیب را از یاد می‌برد

فرض‌ها. رده‌های دشواری یک مونوئیدِ جابه‌جایی می‌سازند؛ نمونه‌های عینی، زیرمجموعه‌های یک فضای عملکردی زیر اجتماع‌اند، و مقیاسِ هزینهٔ اشباع‌شونده‌ای که از افزودنِ یک عنصرِ بیشینهٔ جاذب به اعداد طبیعی به دست می‌آید.

نتیجه. گروهِ گروتندیکِ هر مونوئیدِ جابه‌جاییِ خودتوان گروهی یک‌عنصری است، بدون هیچ فرضِ متناهی‌بودن یا ناتهی‌بودن؛ پس مونوئیدِ ناحیه‌ها بر هر فضای عملکردی تکمیلِ بدیهی دارد، و دو ناحیهٔ متمایزی که یکی دقیقاً درست و دیگری دقیقاً نادرست را دربردارد به یک عنصر فرومی‌ریزند. نگاشتِ کانونی دو رده را دقیقاً وقتی یکی می‌گیرد که عاملی مشترک، ضرب‌شده در هر دو، آن‌ها را به توافق برساند، و بر هر مونوئیدِ جابه‌جاییِ حذف‌پذیر یک‌به‌یک است. مقیاسِ هزینهٔ اشباع‌شونده نیز تکمیلِ جمعیِ بدیهی دارد. (بررسی‌شده با ماشین)

Lean declarations and proofs (KTheoryCollapse.lean): HardProblems.KTheoryCollapse.RegionMonoid, HardProblems.KTheoryCollapse.grothendieckGroup_subsingleton_of_idempotent, HardProblems.KTheoryCollapse.grothendieckGroup_regionMonoid_subsingleton, HardProblems.KTheoryCollapse.grothendieckGroup_of_eq_iff, HardProblems.KTheoryCollapse.toGrothendieckGroup_injective_of_cancel, HardProblems.KTheoryCollapse.concrete_regions_collapse, HardProblems.KTheoryCollapse.withTop_cost_top_add_image, HardProblems.KTheoryCollapse.saturating_costs_grothendieckAddGroup_subsingletonاجرا
-- LeanTest/HardProblems/KTheoryCollapse.lean
/-- Attainable-performance regions over a performance space `P`, composing by
union. -/
abbrev RegionMonoid (P : Type u) := Set P

-- LeanTest/HardProblems/KTheoryCollapse.lean
/-- Goal 1': the Grothendieck group of every commutative idempotent monoid is
trivial. -/
theorem grothendieckGroup_subsingleton_of_idempotent
    (M : Type u) [CommMonoid M] (hidem : ∀ a : M, a * a = a) :
    Subsingleton (GrothendieckGroup M) := by
  refine ⟨fun x y => ?_⟩
  -- We'll show all elements equal GrothendieckGroup.of 1
  suffices ∀ z : GrothendieckGroup M, z = GrothendieckGroup.of 1 by rw [this x, this y]
  intro z
  -- Use Quot.induction_on to work with representatives
  induction z using Quot.induction_on with
  | h p => 
    -- p : M × ⊤, need to show Quot.mk oreEqv p = 1
    let ⟨a, b⟩ := p
    -- Need to show Quot.mk oreEqv (a, b) = GrothendieckGroup.of 1
    -- First show GrothendieckGroup.of 1 = Quot.mk oreEqv (1, 1)
    have of_one_eq : GrothendieckGroup.of 1 = Quot.mk (OreLocalization.oreEqv ⊤ M) (1, 1) := by
      rfl
    rw [of_one_eq]
    -- Now use Quot.eq
    apply Quot.sound
    unfold OreLocalization.oreEqv
    -- Need ∃ u v, u • (1,1).1 = v • (a,b).1 ∧ u * (1,1).2 = v * (a,b).2
    -- i.e., ∃ u v, u = v * a ∧ u = v * b
    -- Take v = a * b, u = a * b
    refine ⟨⟨a * b, ?_⟩, a * b, ?_⟩
    · simp
    · constructor
      · -- ⟨a * ↑b, _⟩ • 1 = (a * ↑b) • a
        simp only [Submonoid.mk_smul, smul_eq_mul]
        rw [mul_one]
        conv_rhs => rw [mul_assoc, mul_comm, mul_assoc, hidem]
        rw [mul_comm]
      · -- ↑⟨a * ↑b, _⟩ * ↑(1,1).2 = a * ↑b * ↑(a,b).2
        simp [mul_one]
        rw [mul_assoc, hidem]

-- LeanTest/HardProblems/KTheoryCollapse.lean
/-- Goal 1: the Grothendieck group of the region monoid is trivial, for every
performance type `P` (including the empty type). -/
theorem grothendieckGroup_regionMonoid_subsingleton (P : Type u) :
    Subsingleton (GrothendieckGroup (RegionMonoid P)) := by
  apply grothendieckGroup_subsingleton_of_idempotent
  exact Set.union_self

-- LeanTest/HardProblems/KTheoryCollapse.lean
/-- Goal 2: canonical images are equal exactly when the two elements become
equal after multiplying by a common slack element. -/
theorem grothendieckGroup_of_eq_iff (M : Type u) [CommMonoid M] (a b : M) :
    GrothendieckGroup.of a = GrothendieckGroup.of b ↔
      ∃ c : M, a * c = b * c := by
  change Localization.mk a 1 = Localization.mk b 1 ↔ _
  rw [Localization.mk_eq_mk_iff, Localization.r_iff_exists]
  simp only [Submonoid.coe_one, one_mul]
  constructor
  · rintro ⟨c, hc⟩
    exact ⟨c, by simpa [mul_comm] using hc⟩
  · rintro ⟨c, hc⟩
    exact ⟨⟨c, Submonoid.mem_top c⟩, by simpa [mul_comm] using hc⟩

-- LeanTest/HardProblems/KTheoryCollapse.lean
/-- Goal 3: for a cancellative cost monoid, the canonical map is injective. -/
theorem toGrothendieckGroup_injective_of_cancel
    (M : Type u) [CancelCommMonoid M] :
    Function.Injective (GrothendieckGroup.of : M → GrothendieckGroup M) := by
  exact GrothendieckGroup.of_injective

-- LeanTest/HardProblems/KTheoryCollapse.lean
/-- Goal 4: the concrete regions `{true}` and `{false}` are distinct but have
the same image in the Grothendieck group. -/
theorem concrete_regions_collapse :
    ({true} : RegionMonoid Bool) ≠ {false} ∧
      GrothendieckGroup.of ({true} : RegionMonoid Bool) =
        GrothendieckGroup.of ({false} : RegionMonoid Bool) := by
  haveI : Subsingleton (GrothendieckGroup (RegionMonoid Bool)) :=
    grothendieckGroup_regionMonoid_subsingleton Bool
  refine ⟨?_, Subsingleton.elim _ _⟩
  simp [Set.eq_singleton_iff_unique_mem]

-- LeanTest/HardProblems/KTheoryCollapse.lean
/-- Goal 5a: adding any cost to the absorbing overflow value does not change
its canonical image. -/
theorem withTop_cost_top_add_image (a : WithTop ℕ) :
    GrothendieckAddGroup.of (⊤ + a) =
      GrothendieckAddGroup.of (⊤ : WithTop ℕ) := by
  simp

-- LeanTest/HardProblems/KTheoryCollapse.lean
/-- Goal 5: because `⊤` is absorbing, the entire Grothendieck group of
`WithTop ℕ` is trivial, not merely the part at or above the cap. -/
theorem saturating_costs_grothendieckAddGroup_subsingleton :
    Subsingleton (GrothendieckAddGroup (WithTop ℕ)) := by
  have hof : ∀ a : WithTop ℕ, GrothendieckAddGroup.of a = 0 := by
    intro a
    apply add_right_cancel (b := GrothendieckAddGroup.of (⊤ : WithTop ℕ))
    rw [← map_add]
    simp
  constructor
  intro x y
  suffices ∀ z : GrothendieckAddGroup (WithTop ℕ), z = 0 by rw [this x, this y]
  intro z
  induction z using AddLocalization.induction_on with
  | _ p =>
    have h : AddLocalization.mk p.1 p.2 +
        GrothendieckAddGroup.of (p.2 : WithTop ℕ) =
        GrothendieckAddGroup.of p.1 := by
      change AddLocalization.mk p.1 p.2 +
          AddLocalization.mk (p.2 : WithTop ℕ) 0 = AddLocalization.mk p.1 0
      rw [AddLocalization.mk_add, AddLocalization.mk_eq_mk_iff,
        AddLocalization.r_iff_exists]
      use 0
      simp [add_comm]
    rw [hof _, hof _] at h
    simpa using h

مرز. این نتیجه‌ها به یک مقوله‌زدایی مربوط‌اند: تکمیلِ گروهیِ مونوئیدِ ترکیب. هر ناوردایی گروه‌مقدار یا عددی را رد نمی‌کنند، فقط آن‌هایی را که از این تکمیل می‌گذرند. اینجا هیچ K-گروهِ بالاتری محاسبه نمی‌شود، و هیچ چیزی عملِ ترکیب را یگانه عملِ جالب نمی‌گیرد؛ ساختارِ مونوئیدیِ دیگری بر مواجهه‌ها می‌توانست تکمیلی متفاوت بدهد. این فروریختن نگه‌داشتنِ ترتیب را موجه می‌کند؛ ثابت نمی‌کند ترتیب یگانه گزینه است.

در سطحِ ترتیب هیچ تابی در کار نیست

فرض‌ها. یک شبه‌فانکتور از یک مقولهٔ پایهٔ موضعاً گسسته که مقوله‌های مقدارش نازک و اسکلتی‌اند، یعنی ترتیب‌های جزئی. جداگانه، پایهٔ تک‌شیئی بر گروهِ دوعضوی، با تارِ گروپوئیدِ تک‌شیئی بر همان گروه و یاخته‌های مقایسه‌ای که از کوسیکلِ ضربِ کاپ ساخته شده‌اند.

نتیجه. شبه‌فانکتورهای ترتیب‌مقدار سرِ راست اکیدند: همانی‌ها و ترکیب به‌صورت تساویِ فانکتورها حفظ می‌شوند، و هر ایزومورفیسمِ مقایسه‌ای ایزومورفیسمی برخاسته از تساوی است. پس ترتیبِ نمایه‌دارِ اسپلیت اجباری بود، نه انتخابی. بر تارِ نانازک، داده‌های کوسیکلی به شبه‌فانکتوری واقعی سرهم می‌شوند که اثباتِ انسجامش همان اتحادِ کوسیکل است، یاخته‌های مقایسه‌اش به تساویِ تعریفی همان مقایسه‌های کوسیکلی‌اند، و هیچ بازگزینشِ ضریب‌ها هم‌مرزی برابر با آن‌ها ندارد، چون کوسیکلِ ضربِ کاپ هم‌مرز نیست، به حکمِ بررسیِ متناهیِ هسته‌ای. نیمهٔ اکیدبودن در خودِ ترتیبِ نمایه‌دارِ اسپلیتِ کتاب هم نمونه‌سازی شده است: تارهایش نازک و اسکلتی اثبات شده‌اند، و هر دو ایزومورفیسمِ مقایسه‌ایِ آن برخاسته از تساوی‌اند. (بررسی‌شده با ماشین)

Lean declarations and proofs (TwistObstruction.lean): HardProblems.Twist.map_id_eq_of_thin_skeletal, HardProblems.Twist.map_comp_eq_of_thin_skeletal, HardProblems.Twist.mapComp_eqToIso_of_thin_skeletal, HardProblems.Twist.twoCocycle, HardProblems.Twist.twoCocycle_isCocycle, HardProblems.Twist.twoCocycle_not_coboundary, HardProblems.Twist.twistElementIso, HardProblems.Twist.twistNatIso, HardProblems.Twist.twistIdHom, HardProblems.Twist.twistComparison, HardProblems.Twist.twistedPseudofunctor, HardProblems.Twist.twistedPseudofunctor_mapComp, HardProblems.Twist.twist_is_essential, HardProblems.Twist.mapId_eqToIso_of_thin_skeletal, HardProblems.Twist.toCatPseudofunctor_fibre_thin, HardProblems.Twist.toCatPseudofunctor_fibre_skeletal, HardProblems.Twist.splitIndexedOrder_mapComp_eqToIso, HardProblems.Twist.splitIndexedOrder_mapId_eqToIsoاجرا
-- LeanTest/HardProblems/TwistObstruction.lean
/-- Goal A1. If every value category of a pseudofunctor from a locally
discrete base is thin and skeletal, then the pseudofunctor preserves
identities on the nose: the underlying functor of `F.map (id)` equals the
identity functor. State with whatever locally-discrete encoding of the base
1-category `C` mathlib's `Pseudofunctor` needs. -/
theorem map_id_eq_of_thin_skeletal
    (F : Pseudofunctor (LocallyDiscrete C) Cat.{w, w})
    (hthin : ∀ c : C, Quiver.IsThin (F.obj ⟨c⟩))
    (hskel : ∀ c : C, Skeletal (F.obj ⟨c⟩)) (c : C) :
    F.map (𝟙 ⟨c⟩) = 𝟙 (F.obj ⟨c⟩) := by
  letI := hthin c
  apply Cat.Hom.ext
  exact Functor.eq_of_iso (hskel c) (Cat.Hom.toNatIso (F.mapId ⟨c⟩))

-- LeanTest/HardProblems/TwistObstruction.lean
/-- Goal A2. Same hypotheses: composition is preserved on the nose. -/
theorem map_comp_eq_of_thin_skeletal
    (F : Pseudofunctor (LocallyDiscrete C) Cat.{w, w})
    (hthin : ∀ c : C, Quiver.IsThin (F.obj ⟨c⟩))
    (hskel : ∀ c : C, Skeletal (F.obj ⟨c⟩))
    {a b c : C} (f : a ⟶ b) (g : b ⟶ c) :
    F.map (⟨f⟩ ≫ ⟨g⟩ : (⟨a⟩ : LocallyDiscrete C) ⟶ ⟨c⟩) =
      F.map ⟨f⟩ ≫ F.map ⟨g⟩ := by
  letI := hthin c
  apply Cat.Hom.ext
  exact Functor.eq_of_iso (hskel c) (Cat.Hom.toNatIso (F.mapComp ⟨f⟩ ⟨g⟩))

-- LeanTest/HardProblems/TwistObstruction.lean
/-- Goal A3. The comparison isomorphisms themselves are the identity
2-cells modulo the equalities above: each `mapComp` component is an
`eqToIso`. State the cleanest correct version; if a different phrasing of
"the comparison data is trivial" is more natural in mathlib's API, prove
that and rename. -/
theorem mapComp_eqToIso_of_thin_skeletal
    (F : Pseudofunctor (LocallyDiscrete C) Cat.{w, w})
    (hthin : ∀ c : C, Quiver.IsThin (F.obj ⟨c⟩))
    (hskel : ∀ c : C, Skeletal (F.obj ⟨c⟩))
    {a b c : C} (f : a ⟶ b) (g : b ⟶ c) :
    F.mapComp ⟨f⟩ ⟨g⟩ =
      eqToIso (map_comp_eq_of_thin_skeletal F hthin hskel f g) := by
  ext X
  have thin := hthin c
  exact Subsingleton.elim _ _

-- LeanTest/HardProblems/TwistObstruction.lean
/-- The cup-product 2-cocycle on `ZMod 2`: `c h h' = h * h'`. Its class
generates the degree-2 cohomology of Z/2 with Z/2 coefficients, and is the
obstruction separating the two extensions of Z/2 by Z/2. -/
def twoCocycle (h h' : ZMod 2) : ZMod 2 := h * h'

-- LeanTest/HardProblems/TwistObstruction.lean
/-- Goal B1. The cocycle identity, with trivial action:
`c(h',h'') - c(h+h',h'') + c(h,h'+h'') - c(h,h') = 0`. -/
theorem twoCocycle_isCocycle (h h' h'' : ZMod 2) :
    twoCocycle h' h'' - twoCocycle (h + h') h''
      + twoCocycle h (h' + h'') - twoCocycle h h' = 0 := by
  simp only [twoCocycle]
  ring

-- LeanTest/HardProblems/TwistObstruction.lean
/-- Goal B2. Not a coboundary: no 1-cochain `φ` has
`c(h,h') = φ h' - φ (h+h') + φ h` everywhere. This is the precise sense in
which the comparison data below cannot be normalized away. -/
theorem twoCocycle_not_coboundary :
    ¬ ∃ φ : ZMod 2 → ZMod 2,
      ∀ h h', twoCocycle h h' = φ h' - φ (h + h') + φ h := by
  decide

-- LeanTest/HardProblems/TwistObstruction.lean
def twistElementIso (x : ZMod 2) :
    (SingleObj.star TwistGroup : TwistFibre) ≅ SingleObj.star TwistGroup :=
  Iso.mk (Multiplicative.ofAdd x) (Multiplicative.ofAdd (-x))
    (by change -x + x = 0; exact neg_add_cancel x)
    (by change x + -x = 0; exact add_neg_cancel x)

-- LeanTest/HardProblems/TwistObstruction.lean
def twistNatIso (x : ZMod 2) : 𝟭 TwistFibre ≅ 𝟭 TwistFibre :=
  NatIso.ofComponents (fun _ => twistElementIso x) (by
    intro X Y f
    cases X
    cases Y
    first
      | exact mul_comm f (Multiplicative.ofAdd x)
      | exact mul_comm (Multiplicative.ofAdd x) f)

-- LeanTest/HardProblems/TwistObstruction.lean
def twistIdHom : (Cat.of TwistFibre) ⟶ Cat.of TwistFibre :=
  (𝟭 TwistFibre).toCatHom

-- LeanTest/HardProblems/TwistObstruction.lean
/-- The comparison 2-isomorphism whose distinguished component is literally
`twoCocycle h h'`.  The right-unitor only reconciles the wrapper used by
`Cat` for the composite of two identity functors. -/
def twistComparison (h h' : ZMod 2) :
    twistIdHom ≅ twistIdHom ≫ twistIdHom :=
  Cat.Hom.isoMk
    (twistNatIso (twoCocycle h h') ≪≫ (Functor.rightUnitor (𝟭 TwistFibre)).symm)

-- LeanTest/HardProblems/TwistObstruction.lean
noncomputable def twistedPseudofunctor :
    Pseudofunctor (LocallyDiscrete TwistBase) Cat :=
  LocallyDiscrete.mkPseudofunctor
    (fun _ => Cat.of TwistFibre)
    (fun _ => twistIdHom)
    (fun _ => Cat.Hom.isoMk (Iso.refl _))
    (fun f g => by
      cases ‹TwistBase›
      cases ‹TwistBase›
      cases ‹TwistBase›
      change TwistGroup at f g
      exact twistComparison (Multiplicative.toAdd f) (Multiplicative.toAdd g))
    (by
      intros b₀ b₁ b₂ b₃ f g h
      cases b₀; cases b₁; cases b₂; cases b₃
      show _
      simp only [Cat.of]
      show _
      change Multiplicative (ZMod 2) at f g h
      have hc := twoCocycle_isCocycle
        (Multiplicative.toAdd f) (Multiplicative.toAdd g) (Multiplicative.toAdd h)
      fin_cases f <;> fin_cases g <;> fin_cases h <;> simp_all [twistComparison, twistNatIso,
        twistElementIso, NatIso.ofComponents, Functor.rightUnitor, Bicategory.associator] <;>
        ext <;> simp_all [twistIdHom, twoCocycle] <;> norm_cast
      all_goals rename_i X
      all_goals cases X
      all_goals change (_ : TwistGroup) = _
      all_goals rfl)
    (by
      intros b₀ b₁ f
      cases b₀; cases b₁
      change Multiplicative (ZMod 2) at f
      fin_cases f <;> simp_all [twistComparison, twistNatIso,
        twistElementIso, NatIso.ofComponents] <;>
        ext <;> simp_all [twistIdHom, twoCocycle] <;> norm_cast)
    (by
      intros b₀ b₁ f
      cases b₀; cases b₁
      change Multiplicative (ZMod 2) at f
      fin_cases f <;> simp_all [twistComparison, twistNatIso,
        twistElementIso, NatIso.ofComponents, Functor.rightUnitor] <;>
        ext <;> simp_all [twistIdHom, twoCocycle] <;> norm_cast)

-- LeanTest/HardProblems/TwistObstruction.lean
/-- The comparison of `twistedPseudofunctor` is the cocycle comparison by
construction. -/
theorem twistedPseudofunctor_mapComp (h h' : TwistGroup) :
    twistedPseudofunctor.mapComp
        (⟨h⟩ : (⟨SingleObj.star TwistGroup⟩ : LocallyDiscrete TwistBase) ⟶ ⟨SingleObj.star TwistGroup⟩)
        (⟨h'⟩ : (⟨SingleObj.star TwistGroup⟩ : LocallyDiscrete TwistBase) ⟶ ⟨SingleObj.star TwistGroup⟩) =
      twistComparison (Multiplicative.toAdd h) (Multiplicative.toAdd h') := by
  rfl

-- LeanTest/HardProblems/TwistObstruction.lean
/-- Goal B4. No re-choice of comparison components has coboundary equal to
(the negative of, equivalently in `ZMod 2`, equal to) the coefficients of the
actual comparison cells of `twistedPseudofunctor`. -/
theorem twist_is_essential :
    (∀ h h' : TwistGroup,
      twistedPseudofunctor.mapComp
          (⟨h⟩ : (⟨SingleObj.star TwistGroup⟩ : LocallyDiscrete TwistBase) ⟶
            ⟨SingleObj.star TwistGroup⟩)
          (⟨h'⟩ : (⟨SingleObj.star TwistGroup⟩ : LocallyDiscrete TwistBase) ⟶
            ⟨SingleObj.star TwistGroup⟩) =
        twistComparison (Multiplicative.toAdd h) (Multiplicative.toAdd h')) ∧
    ¬ ∃ φ : ZMod 2 → ZMod 2,
      ∀ h h', twoCocycle h h' = φ h' - φ (h + h') + φ h := by
  exact ⟨twistedPseudofunctor_mapComp, twoCocycle_not_coboundary⟩

-- LeanTest/HardProblems/TwistObstruction.lean
/-- The identity comparison is also equality-induced, completing the pair:
with thin skeletal values, both comparison isomorphisms of a pseudofunctor
are `eqToIso`, which is the full content of "strict on the nose". -/
theorem mapId_eqToIso_of_thin_skeletal
    (F : Pseudofunctor (LocallyDiscrete C) Cat.{w, w})
    (hthin : ∀ c : C, Quiver.IsThin (F.obj ⟨c⟩))
    (hskel : ∀ c : C, Skeletal (F.obj ⟨c⟩)) (c : C) :
    F.mapId ⟨c⟩ = eqToIso (map_id_eq_of_thin_skeletal F hthin hskel c) := by
  ext X
  have thin := hthin c
  exact Subsingleton.elim _ _

-- LeanTest/HardProblems/TwistObstruction.lean
/-- Fibres of the book's indexed order are thin: their homs are proofs. -/
theorem toCatPseudofunctor_fibre_thin (P : SplitIndexedOrder.{v, u, w} C)
    (c : Cᵒᵖ) : Quiver.IsThin ((toCatPseudofunctor P).obj ⟨c⟩) := by
  show Quiver.IsThin (P.Fiber c.unop)
  intro X Y
  exact ⟨fun f g => Subsingleton.elim f g⟩

-- LeanTest/HardProblems/TwistObstruction.lean
/-- Fibres of the book's indexed order are skeletal: an isomorphism gives
inequalities both ways, and antisymmetry finishes. -/
theorem toCatPseudofunctor_fibre_skeletal (P : SplitIndexedOrder.{v, u, w} C)
    (c : Cᵒᵖ) : Skeletal ((toCatPseudofunctor P).obj ⟨c⟩) := by
  show Skeletal (P.Fiber c.unop)
  rintro X Y ⟨i⟩
  exact le_antisymm (leOfHom i.hom) (leOfHom i.inv)

-- LeanTest/HardProblems/TwistObstruction.lean
/-- The splitting of the book's indexed order was forced: its composition
comparison is equality-induced. -/
theorem splitIndexedOrder_mapComp_eqToIso (P : SplitIndexedOrder.{v, u, w} C)
    {a b c : Cᵒᵖ} (f : a ⟶ b) (g : b ⟶ c) :
    (toCatPseudofunctor P).mapComp ⟨f⟩ ⟨g⟩ =
      eqToIso (map_comp_eq_of_thin_skeletal (toCatPseudofunctor P)
        (toCatPseudofunctor_fibre_thin P) (toCatPseudofunctor_fibre_skeletal P)
        f g) :=
  mapComp_eqToIso_of_thin_skeletal (toCatPseudofunctor P)
    (toCatPseudofunctor_fibre_thin P) (toCatPseudofunctor_fibre_skeletal P) f g

-- LeanTest/HardProblems/TwistObstruction.lean
/-- And its identity comparison likewise. -/
theorem splitIndexedOrder_mapId_eqToIso (P : SplitIndexedOrder.{v, u, w} C)
    (c : Cᵒᵖ) :
    (toCatPseudofunctor P).mapId ⟨c⟩ =
      eqToIso (map_id_eq_of_thin_skeletal (toCatPseudofunctor P)
        (toCatPseudofunctor_fibre_thin P) (toCatPseudofunctor_fibre_skeletal P)
        c) :=
  mapId_eqToIso_of_thin_skeletal (toCatPseudofunctor P)
    (toCatPseudofunctor_fibre_thin P) (toCatPseudofunctor_fibre_skeletal P) c

مرز. به حکمِ اکیدسازیِ عمومی، هر شبه‌فانکتوری با یک ۲-فانکتورِ اکید هم‌ارز است؛ پس ادعای ناهم‌ارزی در کار نیست و نتیجه دربارهٔ همین ارائه است. بازگزینش‌ها به‌صورت تابع‌های ضریب بر گروه سورشده‌اند، و یکی‌گرفتنشان با اتومورفیسم‌های فانکتورِ همانی از راهِ خودِ ساخت است، نه از راه ایزومورفیسمی اثبات‌شده میان گروه‌ها. اینجا هیچ K-نظریهٔ تاب‌دارِ دشواری تعریف نمی‌شود: با تارهای جزئاً مرتب تابی نیست که اثر کند، با ضریب‌های فروریختهٔ کارتِ قبلی چیزی نیست که بر آن اثر شود، و این قیاس در هر دو سو در همان مانع بسته شده است، نه اینکه پرورده شود.

یادداشت‌هایادداشت‌ها و منابع

استدلال اطلاعاتی از نامساوی پردازش داده، قاعدهٔ زنجیره‌ای اطلاعات متقابل و تابع نرخ اعوجاج شانون استفاده می‌کند. ضمیمهٔ Lean پیش‌ترتیب پالایش قطعی، پیامدهای آن برای تصمیم مقاوم و لم نهایی انباشت نرده‌ای را بررسی می‌کند. هنوز اطلاعات متقابل اندازه‌نظری، نامساوی تصادفی پردازش داده یا قضیهٔ کدگذاری شانون را صورت‌بندی صوری نکرده است.

فرمول پسین نرده‌ای، به‌روزرسانی هم‌تای اندازه‌گیری‌های مستقل و تکراری از یک حالت ثابت گاوسی است. مقالهٔ فیلتر کالمن در سال ۱۹۶۰ برآورد خطی پویا را از راه روابط بازگشتی کوواریانس بررسی می‌کند. نیر و ایوانز کاربردی متفاوت و ویژهٔ کنترل از نرخ اطلاعات ارائه می‌کنند: کران پایین نرخ داده برای پایدارسازی تصادفی. هیچ‌یک از این نتایج اجازه نمی‌دهد همهٔ محدودیت‌های بازخورد را با یک عدد ظرفیت کانال جایگزین کنیم.

هرمان و کرنر فضای مشاهدهٔ غیرخطی را از مشتق‌های تکرارشدهٔ لی می‌سازند و استلزام رتبهٔ کامل به مشاهده‌پذیری ضعیف موضعی را ثابت می‌کنند. تحلیل رتبهٔ ثابت آن‌ها همچنین روشن می‌کند که چرا جهت‌های پنهان، برگ‌هایی موضعی‌اند و نه لزوماً زیرفضایی خطی یا خارج‌قسمتی سراسری و خوش‌رفتار. در صورت‌بندی خروجی به حالت سونتاگ و وانگ، ورودی و خروجی صفر افت مجانبی حالت را نتیجه می‌دهند، درحالی‌که اندازه‌های ناصفر ورودی یا خروجی کران‌های متناظر حالت را به دست می‌دهند. تفسیر این سیگنال‌ها به‌عنوان اغتشاش‌های مشاهده‌گر، مدلی اعلام‌شده برای سامانهٔ خطای برآورد می‌خواهد. کتاب این نتایج هندسهٔ دیفرانسیل را در Lean صورت‌بندی صوری نمی‌کند.

بحث مشاهده‌گر غیرخطی استدلالی مبتنی بر سامانهٔ مقایسه و مرتبط با مقاومت ورودی به حالت است. راجامانی مشاهده‌گرهای سامانه‌های غیرخطی لیپشیتس را بررسی می‌کند. آندریو و پرالی شرایط مشاهده‌گرهای غیرخطی کازانتزیس، کراواریس و لوئنبرگر را به دست می‌دهند. شیم و لیبرزون مقاومت مشاهده‌گر در برابر اغتشاش اندازه‌گیری را به معنایی شبیه ISS صورت‌بندی می‌کنند. رابطهٔ بازگشتی نرده‌ای کتاب از این نتایج طراحی مشاهده‌گر محدودتر است.

تمایز مجموعه‌های باقیمانده میان سازگارسازی، آشکارسازی و جداسازی در تشخیص خطای مبتنی بر مدل استاندارد است. آستانهٔ \(2\rho\) از هندسهٔ قطعی گوی نرم به دست می‌آید و فقط شرط کافی جدایی در بدترین حالت است. پتن و چن آشکارسازی و جداسازی مقاوم خطا بر پایهٔ مشاهده‌گر را در چارچوبی گسترده‌تر بررسی می‌کنند.

استدلال‌های حالت متناهی به سنت مای‌هیل و نرود تعلق دارند: تاریخچه‌هایی که از نظر رفتاری تمایزپذیرند به حالت‌هایی جدا نیاز دارند. شرایط انتزاع نسخه‌های ابتدایی و مسیری ایده‌های شبیه‌سازی و بالابردن در تفسیر انتزاعی و انتزاع حالت‌اند. قضیه‌های صوری آگاهانه از آن نظریه‌های عمومی کوچک‌ترند.

رویکرد رفتاری ویلمس، سامانه را مسیرهای مجاز آن می‌داند و به نحوهٔ نمایش ورودی و خروجی یا فضای حالت امتیاز ویژه نمی‌دهد. پیمانهٔ Lean کتاب فقط هستهٔ مجموعه‌نظری را بررسی می‌کند: اشتراک، تصویر، ایمنی همگانی، ناوردایی گسسته و چسبانش دوتایی توابع. شولتس و اسپیواک نظریهٔ نوع زمانی بسیار غنی‌تری را در توپوسی از شیف‌ها می‌سازند. آن کار انگیزهٔ معناشناسی محلی اینجا را فراهم می‌کند؛ صورت‌بندی ابتدایی کتاب را به یک مدل توپوسی بدل نمی‌کند.

برداشتِ عملگرِ بستاری از مرزها پیشینه‌هایی کلاسیک دارد که واژگانش را تثبیت می‌کنند. گروتندیک مقوله‌های تاربندی‌شده و لیفت‌های دکارتی‌شان را وارد کرد؛ ارائهٔ نمایه‌دارِ اسپلیت و ساختِ مقولهٔ کل که این همراه بررسی می‌کند از همان کار می‌آیند. لاوی‌یر و تیرنی نشان دادند زیرتوپوس‌های یک توپوس دقیقاً با عملگرهای بستارِ معینی بر ساختار زیرشیءهایش متناظرند، که قوی‌ترین نمونهٔ تاریخی از رده‌بندی‌شدنِ مرزها با بستار است. نظریهٔ تریپوس، به روایت هایلند و جانستون و پیتس، از پیش‌ترتیب‌های نمایه‌دارِ باساختار مدل‌های منطق شهودی می‌سازد، یعنی ترتیبی تاربندی‌شده که برای حملِ منطق ساخته شده است. تک‌نگاشتِ یاکوبس پیش‌ترتیب‌های تاربندی‌شده را همچون معناشناسی عمومی منطق بر یک پایه می‌پروراند. واژگانِ تاب از دانوان و کاروبی و از عطیه و سیگال می‌آید، آنجا که K-گروه‌های موضعی بر یک پایه در چسبیدن شکست می‌خورند و این شکست با رده‌ای کوهومولوژیک اندازه می‌شود؛ اینجا هر دو راه به چنین تابی بسته اثبات شده است، در سطحِ ترتیب با اکیدبودن و در سطحِ ضریب با فروریختن. هیچ‌یک از این نتیجه‌های بیرونی در همراه صورت‌بندی نشده است؛ به‌عنوان سنتی که این ساخت‌ها به آن تعلق دارند ارجاع داده شده‌اند.

پیوستواژه‌نامه

این تعریف‌ها ویژهٔ «چرا مسئله‌ها سخت‌اند» هستند. هر مدخل نقش صوری اصطلاح را مشخص می‌کند و می‌گوید چه برداشت افراطی‌ای از آن مجاز نیست.

آ تا ب

آشکارپذیری (Detectability)
معنی: فروکش‌کردن ابهام حالتی است که تاریخچهٔ خروجی مجاز برطرف نمی‌کند. صرف کرانداری آشکارپذیری دقیق نیست؛ لولهٔ باقیماندهٔ ثابت آشکارپذیری عملی است و لولهٔ وابسته به اغتشاش فقط هنگامی مقاوم است که کرانش با اغتشاش به صفر برسد. آشکارپذیری مشاهده‌گر نمی‌سازد و پایدارپذیری را نتیجه نمی‌دهد.
اطلاعات مرتبط با مسئله (Task-relevant information)
معنی: اطلاعاتی است که عدم‌قطعیت را تحت زیان یا تصمیم مورد بررسی کاهش می‌دهد. یک گزارش می‌تواند بیت‌های فراوانی دربارهٔ مختصات نامربوط داشته باشد و در عین حال یک تمایز حیاتی برای تصمیم را در خود نداشته باشد.
اعوجاج (Distortion)
معنی: زیان اعلام‌شدهٔ \(d(x,\widehat x)\) برای بازسازی \(x\) به‌صورت \(\widehat x\) است که اغلب زیر یک توزیع میانگین گرفته می‌شود. ادعاهای دقت به این انتخاب وابسته‌اند. اعوجاج کم تحت یک زیان به معنای حفظ همهٔ تمایزهای مرتبط با مسئله نیست.
انتزاع (Abstraction)
معنی: نگاشتی عموماً چندبه‌یک از دامنه‌ای عینی به دامنه‌ای کوچک‌تر یا ساده‌تر است که برای حفظ پاسخ‌های مشخص برگزیده می‌شود. حفظ پیشرو به‌تنهایی برنامهٔ انتزاعی را اجراشدنی نمی‌کند و جهت بازگشت به بالابردن گام و بازتاب هدف نیاز دارد. کوچک‌بودن فضای حالت انتزاعی، محاسبه‌پذیری، ارزانی ساخت یا وفاداری آن به هزینه و ایمنی را ثابت نمی‌کند.
بازنمایی عملیاتی (Operative representation)
معنی: حالتی علّی است که پیامدهای برگزیدهٔ تعامل گذشته را به استنتاج یا کنش بعدی حمل می‌کند، مانند توزیع پسین، حالت مشاهده‌گر، گزارش فشرده یا حافظهٔ بیرونی. بزرگی آن به‌تنهایی بسندگی یا ارتباطش با مسئله را ثابت نمی‌کند.
بالابردن موضعی گام (Local step lifting)
معنی: شرطی است که می‌گوید هر گام انتزاعی ارائه‌شده از تصویر حالت عینی‌ای که واقعاً به آن رسیده‌ایم، در تار لازم جانشینی عینی دارد. این شرط مسیرهای متناهی را با استقرا بالا می‌برد. پوشایی نگاشت انتزاع به‌تنهایی جای آن را نمی‌گیرد.
بسط (Extension)
معنی: افزودن حسگر، عملگر، محمول، مختصهٔ حالت، اوراکل یا اصل موضوعی است که در صورت‌بندی پیشین وجود نداشت. بسط می‌تواند اطلاعات، دسترس‌پذیری یا بیان‌پذیری را تغییر دهد. تغییر مختصات وارون‌پذیر نیست و ثابت نمی‌کند صورت‌بندی قدیم ظرفیت تازه را در خود داشته است.

ت تا د

تابع نرخ اعوجاج (Rate-distortion function)
معنی: اینفیمم اطلاعات متقابل لازم برای آن است که یک کانال بازسازی به اعوجاج مورد انتظار اعلام‌شده برسد. این تابع هدف دقت را به نیاز اطلاعاتی تبدیل می‌کند. ظرفیت مشاهده در هر دور را تعیین نمی‌کند و برآوردگری نمی‌سازد.
تحمل خطا (Fault tolerance)
معنی: سازگارسازی تضمین برآورد، کنترل یا ایمنی را درون یک ردهٔ اعلام‌شدهٔ خطا حفظ می‌کند. آشکارسازی رفتار معیوب را از عدم‌قطعیت سالم جدا می‌کند. جداسازی یک خطای نامزد را از خطاهای دیگر جدا می‌کند. هیچ‌یک دو مورد دیگر را نتیجه نمی‌دهد و آستانهٔ قطعی بدون مدل احتمال، احتمال هشدار کاذب به دست نمی‌دهد.
ترتیب تاربندی‌شده (Fibred order)
معنی: خانواده‌ای از مجموعه‌های توانی پیرامونیِ فضاهای عملکرد ویژهٔ هر بافت است که به‌وسیلهٔ پیش‌تصویر، به‌شکل پادورد و با قوانین همانی و ترکیب بازنمایه‌گذاری می‌شود. پیش‌تصویر زیر نگاشت پوشای نقاط، شمول را بازتاب می‌دهد؛ تناظر دوسویهٔ نقاط عملکرد کافی اما قوی‌تر از شرط لازم است. ناحیه‌های دست‌یافتنی تحقق‌یافته فقط زیرترتیب‌های جزئی می‌سازند و بازنمایه‌گذاری آن‌ها به بسته‌بودن زیر پیش‌تصویر نیاز دارد؛ انتقال سازگار رویارویی‌ها یکی از شاهدهای کافی است. تصویر مستقیم چندبه‌یک عملیاتی هم‌ورد و جداگانه است که ممکن است تمایزها را فروبپاشد. این اصطلاح رده‌ای کانونی، توپولوژی، خمینه یا رتبه‌بندی تام سراسری به دست نمی‌دهد.
تغییر مختصات (Coordinate change)
معنی: بازبرچسب‌گذاری وارون‌پذیری است که هر ساختار نام‌برده در یک ادعا را منتقل می‌کند. مزدوج‌سازی دقیق اجراها، دسترس‌پذیری و رفتار مشاهداتی را حفظ می‌کند و با انتقال مجاورت و هدف، عمق مانع نیز حفظ می‌شود. کشف یا محاسبهٔ این تغییر رایگان نیست.
حاشیهٔ انقباض (Contraction margin)
معنی: برای نامساوی مقایسهٔ \(e_{t+1}\le(q_0+\mu)e_t+d\)، شکاف مثبت \(1-q_0-\mu\) است. تا وقتی مثبت باشد از کران هندسی خطا پشتیبانی می‌کند. ازدست‌رفتن این حاشیهٔ کافی، گواهی را نامعتبر می‌کند و واگرایی واقعی را ثابت نمی‌کند.
دسترس‌پذیری (Reachability)
معنی: عضویت در بستی است که گام‌های متناهی و مجاز از یک حالت آغازین پدید می‌آورند. به مرز کنش و قیدها وابسته است. دسترس‌پذیری دشواری یافتن مسیر، طول مسیر یا حفظ هزینه‌ای وابسته به مسیر را اندازه نمی‌گیرد.

ر تا ظ

ردهٔ آزمایش (Experiment class)
معنی: رویه‌های منفعل و فعالی است که هنگام مقایسهٔ حالت‌ها یا مدل‌ها روی آن‌ها سور گذاشته می‌شود. هم‌ارزی مشاهداتی با این رده نمایه‌گذاری می‌شود. هم‌ارزی زیر آزمایش‌های کران‌دار و امکان‌پذیر الزاماً با هم‌ارزی زیر هر سیاست تابع‌گونه یکی نیست.
ردهٔ مقایسه (Comparison class)
معنی: توصیف‌ها، ماشین‌ها، رابط‌ها یا تغییرهای مختصاتی است که ادعا باید در میان آن‌ها پایدار بماند. عینیت رابطه‌ای از ناوردایی روی رده‌ای اعلام‌شده می‌آید. تغییر رده پس از دیدن نتیجه، مقاومت را ثابت نمی‌کند.
سامانهٔ رفتاری (Behavioral system)
معنی: سامانه‌ای است با دامنهٔ زمانی و فضای سیگنال اعلام‌شده و مجموعه‌ای از مسیرهای مجاز. معادله‌ها، متغیرهای حالت و بخش‌بندی ورودی و خروجی، نحوه‌های ارائهٔ آن رفتارند. اتصال متقابل و پنهان‌سازی به رابط‌های اعلام‌شده نیاز دارند و خانواده‌ای دلخواه از رفتارهای محلی لزوماً شرط چسبانش شیفی را برآورده نمی‌کند. وقتی رفتار مجاز تهی باشد، ایمنی همگانی ممکن است به‌طور تهی‌صدق برقرار باشد.
شبیه‌سازی پیشرو (Forward simulation)
معنی: نگاشتی است که هر گام عینی را به گامی انتزاعی و در نتیجه هر مسیر عینی را به مسیری انتزاعی می‌فرستد. از انتزاع معتبر رفتار عینی پشتیبانی می‌کند. تضمین نمی‌کند گام یا برنامهٔ انتزاعی از یک نمایندهٔ عینی مشخص اجراشدنی باشد.
ظرفیت بازخورد (Feedback capacity)
معنی: کران بالای اطلاعات مرتبط با مسئله است که در یک دور بازخورد، تحت سیاست و مدل کانال مشخص، وارد می‌شود. تنها واریانس نویز آن را تعیین نمی‌کند و لم نرده‌ای بودجه در Lean ثابت نمی‌کند کانالی فیزیکی چنین ظرفیتی دارد.
ظرفیت حالت (State capacity)
معنی: شمار پیکربندی‌های درونی متمایز در دسترس ماشین متناهی است که اغلب با لگاریتم به بیت تبدیل می‌شود. \(2^s\) حالت نمایندهٔ \(s\) بیت است، نه \(2^s\) بیت. ظرفیت برابر، پویایی سازگار یا ردیابی دقیق را ثابت نمی‌کند.

ع تا ک

عدم تطابق مدل (Model mismatch)
معنی: تفاوت میان قانون واقعی گذار یا مشاهده و قانونی است که برآوردگر به کار می‌برد. ضریب نرده‌ای عدم تطابق \(\mu\) فقط پس از توجیه نرم و نامساوی مقایسهٔ ویژهٔ سامانه معنا دارد.
عمق مانع (Barrier depth)
معنی: اینفیمم، روی مسیرهای مجاز، از بیشترین افت زیر مقدار آغازین تابع هدف مسیر است. اگر هیچ مسیر مجازی وجود نداشته باشد، مقدار مانع بنا بر قرارداد \(+\infty\) تعیین می‌شود. عمق مانع آمارهٔ گلوگاه است، نه هزینه‌ای عمومی، کران پایین زمان جست‌وجو، طول مسیر یا زمان گریز تصادفی.
کنش مقاوم (Robust action)
معنی: کنشی است که برای همهٔ حالت‌های یک ردهٔ هم‌ارزی مشاهداتی پذیرفتنی باشد. این کنش‌ها اشتراک مجموعه‌های پذیرفتنی حالت‌ها را می‌سازند. ناتهی‌بودن اشتراک‌های دوتایی، ناتهی‌بودن اشتراک کلی را تضمین نمی‌کند.

ل تا م

لولهٔ خطا (Error tube)
معنی: مجموعه یا شعاع گواهی‌شده‌ای است که خطای برآورد را زیر کران‌های اعلام‌شدهٔ اغتشاش و عدم تطابق در خود نگه می‌دارد. در رابطهٔ بازگشتی نرده‌ای، شعاع ماندگار \(d/(1-q)\) است. لوله تضمینی بالاست، نه توزیع دقیق خطا، کران پایین اجتناب‌ناپذیر یا اثبات دقت بهینه.
مدل ماشین (Machine model)
معنی: مشخصات صوری عملیات، دسترسی به ورودی، حافظه، تصادفی‌سازی و زمان‌بندی خروجی است. کران پیچیدگی به این مدل وابسته است. کران یک‌گذره الزاماً با ورودی بازخواندنی یا حافظهٔ کمکی باقی نمی‌ماند.
مرز اطلاعات (Information boundary)
معنی: مشاهده‌ها، ردهٔ آزمایش، حالت پیشین و محدودیت‌های کانال است که تعیین می‌کنند کدام تمایزها وارد بازنمایی شوند. محاسبه روی گزارش حاصل نمی‌تواند تمایزی را بازیابد که در این مرز غایب بوده است.
مرز کنش (Action boundary)
معنی: مجموعهٔ اعلام‌شدهٔ تبدیل‌های اولیه، قیدها و اجازه‌های سیاست است که حالت‌ها از راه آن‌ها تغییر می‌کنند. استنتاج بهتر درون مرز کنش ثابت، تبدیل غایبی نمی‌سازد. افزودن عملگر مرز را عوض می‌کند، نه اینکه صرفاً کنشی قدیمی را سریع‌تر سازد.

ن تا ی

ناحیهٔ دست‌یافتنی (Attainable region)
معنی: مجموعهٔ کران‌های منابع و زیانی است که دست‌کم یک برنامهٔ مجاز زیر کار و مدل ثابت به آن‌ها می‌رسد. نقاط نامغلوب، هرگاه وجود داشته باشند، بده‌بستان‌های محقق‌شده را ثبت می‌کنند؛ بده‌بستان‌های حدیِ تحقق‌نیافته روی مرز پایین بست قرار می‌گیرند. یک دامنهٔ متناهی منابع می‌تواند وجود بهینه‌ای درونی را تضمین کند، بی‌آنکه الگوریتمی یا بهینه‌ای سراسری به دست دهد. خارج‌قسمت‌گرفتن رویارویی‌ها برابری ناحیه‌هایشان فقط تصویر تحقق‌یافتهٔ درون مجموعهٔ توانی پیرامونی را می‌دهد، نه سراسر تار را. ناحیه بدون نرده‌ای‌سازی، درجه‌ای نرده‌ای از دشواری تعریف نمی‌کند.
نامساوی پردازش داده (Data-processing inequality)
معنی: اصلی است که می‌گوید اعمال کانال یا آماره بر دادهٔ موجود نمی‌تواند اطلاعات متقابل آن را با مجهول افزایش دهد. بازسازی را کران می‌زند، اما نمی‌گوید قاعدهٔ به‌روزرسانی خاصی همهٔ اطلاعات موجود را حفظ می‌کند.
هم‌ارزی مشاهداتی (Observational equivalence)
معنی: برابری همهٔ قوانین متناهی مشاهدهٔ مجاز از دو حالت یا مدل است. به ردهٔ آزمایش وابسته است. هم‌ارزی مشاهداتی همانی فیزیکی را نتیجه نمی‌دهد و اگر کل رده کنشی پذیرفتنی و مشترک داشته باشد، بازیابی دقیق حالت ممکن است لازم نباشد.
هم‌توزیع مشاهده‌پذیری (Observability codistribution)
معنی: گسترهٔ دیفرانسیل خروجی‌ها و مشتق‌های تکرارشدهٔ لی مجاز آن‌ها در هر حالت است. رتبهٔ کامل، شرط کافی هرمان و کرنر برای مشاهده‌پذیری ضعیف موضعی است. فروبنیوس فقط با فرض‌های لازمِ همواری، رتبهٔ ثابت و بسته‌بودن زیر کروشه برگ‌های پنهان موضعی به دست می‌دهد.

منابعمنابع برگزیده

ضمیمهضمیمهٔ صوری

کد Lean بر پایهٔ موضوع ریاضی سازمان یافته است. پیمانه‌های بازنمایی و بازخورد، پیش‌ترتیب قطعی اطلاعات، روابط بازگشتی نرده‌ای و هندسهٔ باقیمانده‌ها را از مقدمات نظریهٔ اطلاعات تصادفی، هندسهٔ دیفرانسیل و طراحی مشاهده‌گر که در نثر ارائه شده‌اند جدا می‌کنند. پیمانه‌های قدیمی‌تر برای نتایج مستقل در درخت کد باقی مانده‌اند، اما کتاب دیگر هر قطعهٔ صورت‌بندی‌پذیر را بخشی از ستون فقرات مفهومی خود نمی‌شمارد.

اثبات‌ها روی زنجیره‌ابزار ثابت‌شدهٔ Lean 4 در مخزن، بدون sorry، admit یا native_decide بررسی می‌شوند. ادعاهای تازه و دشوار همچنین با نسخه‌های ثابت‌شدهٔ Lean و mathlib به ارسطو سپرده می‌شوند. اثبات‌های بازگشتی به‌طور محلی دوباره ساخته و ممیزی می‌شوند و گزاره‌هایشان با ضمیمه مقایسه می‌شود؛ اثبات مخزن ممکن است اثباتی مستقل و هم‌ارز باشد. بررسی هسته استنتاج‌پذیری از فرض‌های صوری را ثابت می‌کند، نه کفایت تجربی یا جامعیت فلسفی آن فرض‌ها را.