[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"branding":3,"analytics":7,"article-a-formal-verification-tool-for-python-stats-code":10,"sections":35},{"siteName":4,"siteTagline":5,"publisherName":4,"contactEmail":6},"The Revision","Tech news, decoded.","editor@therevision.news",{"gaMeasurementId":8,"adsenseClientId":9},"G-ZW2MV82GYR","ca-pub-8533917693782264",{"article":11},{"id":12,"slug":13,"title":14,"dek":15,"body_md":16,"tags_json":17,"published_at":18,"created_at":19,"updated_at":20,"status":21,"review_note":22,"review_notes":23,"image_url":22,"persona_id":22,"persona_name":22,"section":24,"tags":25,"sources":30,"feedback":34,"feedback_at":22,"cost_usd":34,"total_tokens":34},3894,"a-formal-verification-tool-for-python-stats-code","A Formal Verification Tool for Python Stats Code","Why3-py translates Python statistical programs into a format that can be mathematically checked for hidden assumptions and misuse.","A new open-source tool wants to catch the statistical errors that fuel science's reproducibility crisis before they make it into published research.\n\nResearchers have released Why3-py, a Python front-end for the Why3 formal verification platform. The tool converts Python statistical programs into WhyML, a language designed for mathematical proof checking, so that automated verifiers can inspect the code for violated assumptions and incorrect usage. The project also extends an existing tool called StatWhy to cover meta-analysis methods — the aggregated studies that carry outsized weight in research communities. The core problem it targets is unglamorous but real: statistical methods come loaded with implicit assumptions that many practitioners never check, and Python's dynamic typing makes those assumptions invisible to standard code analysis.\n\nThe reproducibility crisis has been documented across psychology, medicine, and social science for over a decade, and bad statistics remain a leading culprit. Formal verification is a well-established technique in software safety engineering, but applying it to scientific computing is still uncommon enough that a tool bridging the two is genuinely useful — especially one that plugs into Python, the dominant language for data analysis.\n\nThe catch is adoption. Formal methods have a steep learning curve, and most researchers writing pandas pipelines are not fluent in proof theory. Whether Why3-py finds an audience beyond verification specialists will depend on how much the tooling can abstract away the underlying machinery — something the paper does not fully address.","[\"formal verification\",\"open-source\",\"reproducibility\",\"statistics\"]","2026-07-07T04:00:00.000Z","2026-07-07T11:05:13.966Z","2026-07-07T11:05:16.877Z","published",null,[],"science",[26,27,28,29],"formal verification","open-source","reproducibility","statistics",[31],{"name":32,"url":33},"arXiv cs.AI","https:\u002F\u002Farxiv.org\u002Fabs\u002F2607.03951",0,{"sections":36},[37,42,47,52,57,62,67,72,76,80,85,89,94,99],{"name":38,"slug":39,"count":40,"latest_published_at":41},"AI","ai",2590,"2026-07-16T04:00:00.000Z",{"name":43,"slug":44,"count":45,"latest_published_at":46},"Security","security",294,"2026-07-15T19:59:48.000Z",{"name":48,"slug":49,"count":50,"latest_published_at":51},"Deals","deals",179,"2026-06-29T20:02:07.000Z",{"name":53,"slug":54,"count":55,"latest_published_at":56},"Policy","policy",158,"2026-07-16T00:02:48.000Z",{"name":58,"slug":59,"count":60,"latest_published_at":61},"Hardware","hardware",122,"2026-07-14T19:46:26.000Z",{"name":63,"slug":64,"count":65,"latest_published_at":66},"Consumer Tech","consumer-tech",93,"2026-07-13T13:20:48.000Z",{"name":68,"slug":69,"count":70,"latest_published_at":71},"Software","software",70,"2026-07-13T19:52:25.000Z",{"name":73,"slug":24,"count":74,"latest_published_at":75},"Science",66,"2026-07-10T10:29:37.000Z",{"name":77,"slug":78,"count":79,"latest_published_at":18},"Dev Tools","dev-tools",59,{"name":81,"slug":82,"count":83,"latest_published_at":84},"Gaming","gaming",41,"2026-07-09T04:00:00.000Z",{"name":86,"slug":87,"count":83,"latest_published_at":88},"Startups","startups","2026-06-29T20:55:50.000Z",{"name":90,"slug":91,"count":92,"latest_published_at":93},"General","general",29,"2026-07-10T22:28:58.000Z",{"name":95,"slug":96,"count":97,"latest_published_at":98},"Reviews","reviews",20,"2026-06-24T12:00:01.000Z",{"name":100,"slug":101,"count":102,"latest_published_at":103},"How-To","how-to",6,"2026-06-16T09:00:00.000Z"]