[{"id":248057,"date":"2026-10-16T10:37:09","date_gmt":"2026-10-16T15:37:09","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=248057"},"modified":"2026-10-16T10:41:49","modified_gmt":"2026-10-16T15:41:49","slug":"movie-password","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/16\/movie-password\/","title":{"rendered":"Movie password"},"content":{"rendered":"<p>I mentioned in the previous post that I watched <em>2010: The Year We Make Contact<\/em> last night and got nerd-sniped by the mention of Lagrange points at the beginning. I got nerd-sniped again in a scene describing a password.<\/p>\n<p>The instructions are<\/p>\n<p style=\"padding-left: 40px;\">Put in nine nines, take the square root and press the integer.<\/p>\n<p>I looked up the line just now to get it right. When I was watching the movie I thought the instructions said to take the integers, i.e. ignore the decimal point. I wondered at the time why not just say take the square root of 10.<\/p>\n<p>Let&#8217;s look at the numbers.<\/p>\n<pre>bc -l\r\n&gt;&gt;&gt; sqrt(999999999)\r\n31622.77658587240501519419\r\n&gt;&gt;&gt; sqrt(10)\r\n3.16227766016837933199\r\n<\/pre>\n<p>If the calculator displays up to eight digits, or rounds to nine digits, the digits in the two results are the same.<\/p>\n<p>However, the intention was to press a key that takes the integer part, and so the password would be<\/p>\n<p style=\"padding-left: 40px;\">\u230a\u221a999999999\u230b = 31622<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I mentioned in the previous post that I watched 2010: The Year We Make Contact last night and got nerd-sniped by the mention of Lagrange points at the beginning. I got nerd-sniped again in a scene describing a password. The instructions are Put in nine nines, take the square root and press the integer. I [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[],"class_list":["post-248057","post","type-post","status-publish","format-standard","hentry","category-math"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"Password generated by a calculator in the movie 2010: The Year We Make Contact.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/16\/movie-password\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Movie password\" \/>\n\t\t<meta property=\"og:description\" content=\"Password generated by a calculator in the movie 2010: The Year We Make Contact.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/16\/movie-password\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-16T15:37:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-16T15:41:49+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Movie password\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Password generated by a calculator in the movie 2010: The Year We Make Contact.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Movie password","description":"Password generated by a calculator in the movie 2010: The Year We Make Contact.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/16\/movie-password\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Movie password","og:description":"Password generated by a calculator in the movie 2010: The Year We Make Contact.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/16\/movie-password\/","article:published_time":"2026-10-16T15:37:09+00:00","article:modified_time":"2026-10-16T15:41:49+00:00","twitter:card":"summary","twitter:title":"Movie password","twitter:description":"Password generated by a calculator in the movie 2010: The Year We Make Contact.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"248057","title":null,"description":"Password generated by a calculator in the movie 2010: The Year We Make Contact.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-10-16 14:52:54","updated":"2026-10-16 15:41:49","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tMovie password\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog\/"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"Movie password","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/16\/movie-password\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248057","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=248057"}],"version-history":[{"count":3,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248057\/revisions"}],"predecessor-version":[{"id":248060,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248057\/revisions\/248060"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=248057"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=248057"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=248057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":248050,"date":"2026-10-16T09:37:07","date_gmt":"2026-10-16T14:37:07","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=248050"},"modified":"2026-10-16T09:39:53","modified_gmt":"2026-10-16T14:39:53","slug":"monoliths-and-lagrange-points","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/16\/monoliths-and-lagrange-points\/","title":{"rendered":"Monoliths and Lagrange Points"},"content":{"rendered":"<p>This post began as a <a href=\"https:\/\/x.com\/JohnDCook\/status\/2110920086449975499?s=20\">thread<\/a> on X last night. I&#8217;ve edited the thread to turn it into a blog post, making some additions and corrections.<\/p>\n<hr \/>\n<p>I&#8217;m watching <em>2010: The Year We Make Contact<\/em>. The movie opens saying the monolith is located at the Lagrange point between Jupiter and Io. I got nerd sniped and wondered where that was.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.johndcook.com\/2010.jpeg\" width=\"500\" height=\"252\" alt=\"MISSION ANALYSIS: COMPOSITION OF SECOND MONOLITY ... UNKNOWN. POSITION OF SECOND MONOLITH ... LA GRANGE POINT BETWEEN JUPITER AND IO. POSSITION OF U.S.S. DISCOVERY ... ORBIT AROUND IO. CONDITION OF U.S.S. DISCOVERY ... UNKNOWN.\" class=\"aligncenter size-medium\" \/><\/p>\n<p>There are five Lagrange points, but presumably the movie refers to L1 or L2 because these are near Io. Lagrange points L3, L4, and L5 are essentially in the orbit of Io, but 60, 180, and 300 degrees out of phase, all far from Io. (The book says the monolith is at L1.)<\/p>\n<p>Lagrange points L1 and L2 are unstable. Maybe this is a plot hole in the movie, unless there&#8217;s an explanation coming. <\/p>\n<p>(In general L1, L2, and L3 are unstable. If the ratio of the masses is large enough, L4 and L5 will be stable. More on that <a href=\"https:\/\/www.johndcook.com\/blog\/2021\/12\/30\/stable-lagrange-points\/\">here<\/a>. The Lagrange points L4 and L5 are indeed stable for the Jupiter-Io system. For the Sun-Earth system L1 is moderately stable over a short time span, but L1 is far less stable for the Jupiter-Io system.)<\/p>\n<p>Here&#8217;s a plot of the Lagrange points.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium\" src=\"https:\/\/www.johndcook.com\/jupiter_io_lagrange.png\" width=\"1000\" height=\"800\" \/><\/p>\n<p>Note that L1 and L2 are very close to Io, about 10,000 km from the moon. The L1 and L2 Lagrange points for the Earth-Sun system are not so close to Earth.<\/p>\n<p>(That&#8217;s half true. Yes, Io&#8217;s L1 point is closer to it than Earth&#8217;s L1 point, in absolute distance. But in relative terms, Io&#8217;s L1 point is actually further away. I had been mislead by seeing an illustration that exaggerated the distance from Earth to L1.)<\/p>\n<h2>Related posts<\/h2>\n<ul>\n<li class='link'><a href='https:\/\/www.johndcook.com\/blog\/2021\/12\/28\/lagrange-points-l1-and-l2\/'>Finding L1 and L2<\/a><\/li>\n<li class='link'><a href='https:\/\/www.johndcook.com\/blog\/2021\/12\/30\/stable-lagrange-points\/'>When do two-body systems have stable Lagrange points?<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This post began as a thread on X last night. I&#8217;ve edited the thread to turn it into a blog post, making some additions and corrections. I&#8217;m watching 2010: The Year We Make Contact. The movie opens saying the monolith is located at the Lagrange point between Jupiter and Io. I got nerd sniped and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[15],"tags":[213],"class_list":["post-248050","post","type-post","status-publish","format-standard","hentry","category-science","tag-orbital-mechanics"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"This post began as a thread on X last night. I&#039;ve edited the thread to turn it into a blog post, making some additions and corrections. I&#039;m watching 2010: The Year We Make Contact. The movie opens saying the monolith is located at the Lagrange point between Jupiter and Io. I got nerd sniped and\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"orbital mechanics\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/16\/monoliths-and-lagrange-points\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Monoliths and Lagrange Points\" \/>\n\t\t<meta property=\"og:description\" content=\"This post began as a thread on X last night. I&#039;ve edited the thread to turn it into a blog post, making some additions and corrections. I&#039;m watching 2010: The Year We Make Contact. The movie opens saying the monolith is located at the Lagrange point between Jupiter and Io. I got nerd sniped and\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/16\/monoliths-and-lagrange-points\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-16T14:37:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-16T14:39:53+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Monoliths and Lagrange Points\" \/>\n\t\t<meta name=\"twitter:description\" content=\"This post began as a thread on X last night. I&#039;ve edited the thread to turn it into a blog post, making some additions and corrections. I&#039;m watching 2010: The Year We Make Contact. The movie opens saying the monolith is located at the Lagrange point between Jupiter and Io. I got nerd sniped and\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Monoliths and Lagrange Points","description":"This post began as a thread on X last night. I've edited the thread to turn it into a blog post, making some additions and corrections. I'm watching 2010: The Year We Make Contact. The movie opens saying the monolith is located at the Lagrange point between Jupiter and Io. I got nerd sniped and","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/16\/monoliths-and-lagrange-points\/","robots":"max-image-preview:large","keywords":"orbital mechanics","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Monoliths and Lagrange Points","og:description":"This post began as a thread on X last night. I've edited the thread to turn it into a blog post, making some additions and corrections. I'm watching 2010: The Year We Make Contact. The movie opens saying the monolith is located at the Lagrange point between Jupiter and Io. I got nerd sniped and","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/16\/monoliths-and-lagrange-points\/","article:published_time":"2026-10-16T14:37:07+00:00","article:modified_time":"2026-10-16T14:39:53+00:00","twitter:card":"summary","twitter:title":"Monoliths and Lagrange Points","twitter:description":"This post began as a thread on X last night. I've edited the thread to turn it into a blog post, making some additions and corrections. I'm watching 2010: The Year We Make Contact. The movie opens saying the monolith is located at the Lagrange point between Jupiter and Io. I got nerd sniped and","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"248050","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-10-16 14:09:39","updated":"2026-10-16 15:12:03","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/science\/\" title=\"Science\">Science<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tMonoliths and Lagrange Points\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog\/"},{"label":"Science","link":"https:\/\/www.johndcook.com\/blog\/category\/science\/"},{"label":"Monoliths and Lagrange Points","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/16\/monoliths-and-lagrange-points\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248050","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=248050"}],"version-history":[{"count":6,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248050\/revisions"}],"predecessor-version":[{"id":248055,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248050\/revisions\/248055"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=248050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=248050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=248050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":248044,"date":"2026-10-14T12:58:07","date_gmt":"2026-10-14T17:58:07","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=248044"},"modified":"2026-10-14T12:58:07","modified_gmt":"2026-10-14T17:58:07","slug":"latex-package-for-pascal-like-triangles","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/latex-package-for-pascal-like-triangles\/","title":{"rendered":"LaTeX package for Pascal-like triangles"},"content":{"rendered":"<p>When I wrote about the <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/13\/harmonic-triangle\/\">harmonic triangle<\/a> yesterday, I displayed the triangle left-aligned using fixed-width text because that was easier than producing the format you usually see for Pascal&#8217;s triangle and related triangles.<\/p>\n<pre>    1\r\n    1\/2  1\/2\r\n    1\/3  1\/6   1\/3\r\n    1\/4  1\/12  1\/12  1\/4\r\n    1\/5  1\/20  1\/30  1\/20  1\/5\r\n    \u2026\r\n<\/pre>\n<p>I asked Claude to write a LaTeX package to make it easier to create Pascal-like triangles and it did a great job, including handy features I didn&#8217;t think to ask for. You can download it here: <a href=\"https:\/\/www.johndcook.com\/numtriangle.sty\">numtriangle.sty<\/a>.<\/p>\n<p>I used this package to create the more attractive display below.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/leibniz_harmonic_triangle3.svg\" width=\"250\" \/><\/p>\n<p>Here&#8217;s the LaTeX code that produced the image above.<\/p>\n<pre>\\documentclass[border=4pt]{standalone}\r\n\\usepackage{numtriangle}\r\n\\NewTriangle{\\Leibniz}{start=1, edges=1\/\\n, rule=\\L - \\P, fractions,\r\n  format=\\displaystyle, xsep=2.8em, ysep=2.8em}\r\n\\begin{document}\r\n\\Leibniz[rows=5]\r\n\\end{document}\r\n<\/pre>\n<p>I then compiled the code to an SVG file with the following.<\/p>\n<pre>pdflatex leibniz.pdf\r\npdftocairo -svg leibniz.pdf leibniz.svg\r\n<\/pre>\n<p><a href=\"https:\/\/www.johndcook.com\/blog\/2025\/04\/16\/bell-numbers-2\/\">Bell&#8217;s triangle<\/a> is not defined in a way that the LaTeX package supports, but I can produce the triangle by listing the content. I made the triangle left-aligned rather than centered just to show that this can be done.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/bell_triangle.svg\" width=\"200\" \/><\/p>\n<p>The LaTeX code was the following:<\/p>\n<pre>\\ListTriangle[shape=left]{\r\n    1; 1, 2; 2, 3, 5; 5, 7, 10, 15; 15, 20, 27, 37, 52}<\/pre>\n<p>Here&#8217;s a particularly photogenic image, Pascal&#8217;s triangle with odd numbers highlighted, showing the <a href=\"https:\/\/www.johndcook.com\/blog\/2020\/06\/28\/the-ubiquitous-sierpinski\/\">Sierpi\u0144ski triangle<\/a> pattern.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/penski.svg\" width=\"480\" \/><\/p>\n<p>The code to produce the image:<\/p>\n<pre>\\PascalTriangle[rows=16, mod=2, xsep=1.9em, ysep=1.3em,\r\n  cell style={font=\\tiny, minimum size=1.2em},\r\n  highlight style={fill=orange!40}]\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>When I wrote about the harmonic triangle yesterday, I displayed the triangle left-aligned using fixed-width text because that was easier than producing the format you usually see for Pascal&#8217;s triangle and related triangles. 1 1\/2 1\/2 1\/3 1\/6 1\/3 1\/4 1\/12 1\/12 1\/4 1\/5 1\/20 1\/30 1\/20 1\/5 \u2026 I asked Claude to write a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[79],"class_list":["post-248044","post","type-post","status-publish","format-standard","hentry","category-math","tag-latex"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"LaTeX package to make it easier to create illustrations of Pascal&#039;s triangle and similar triangles such as Bell&#039;s triangle, Leibniz&#039; triangle, etc.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"latex\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/latex-package-for-pascal-like-triangles\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"LaTeX package for Pascal-like triangles\" \/>\n\t\t<meta property=\"og:description\" content=\"LaTeX package to make it easier to create illustrations of Pascal&#039;s triangle and similar triangles such as Bell&#039;s triangle, Leibniz&#039; triangle, etc.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/latex-package-for-pascal-like-triangles\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-14T17:58:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-14T17:58:07+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"LaTeX package for Pascal-like triangles\" \/>\n\t\t<meta name=\"twitter:description\" content=\"LaTeX package to make it easier to create illustrations of Pascal&#039;s triangle and similar triangles such as Bell&#039;s triangle, Leibniz&#039; triangle, etc.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"LaTeX package for Pascal-like triangles","description":"LaTeX package to make it easier to create illustrations of Pascal's triangle and similar triangles such as Bell's triangle, Leibniz' triangle, etc.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/latex-package-for-pascal-like-triangles\/","robots":"max-image-preview:large","keywords":"latex","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"LaTeX package for Pascal-like triangles","og:description":"LaTeX package to make it easier to create illustrations of Pascal's triangle and similar triangles such as Bell's triangle, Leibniz' triangle, etc.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/latex-package-for-pascal-like-triangles\/","article:published_time":"2026-10-14T17:58:07+00:00","article:modified_time":"2026-10-14T17:58:07+00:00","twitter:card":"summary","twitter:title":"LaTeX package for Pascal-like triangles","twitter:description":"LaTeX package to make it easier to create illustrations of Pascal's triangle and similar triangles such as Bell's triangle, Leibniz' triangle, etc.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"248044","title":null,"description":"LaTeX package to make it easier to create illustrations of Pascal's triangle and similar triangles such as Bell's triangle, Leibniz' triangle, etc.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-10-14 16:12:44","updated":"2026-10-14 23:14:03","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tLaTeX package for Pascal-like triangles\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog\/"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"LaTeX package for Pascal-like triangles","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/latex-package-for-pascal-like-triangles\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=248044"}],"version-history":[{"count":4,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248044\/revisions"}],"predecessor-version":[{"id":248048,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248044\/revisions\/248048"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=248044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=248044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=248044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":248041,"date":"2026-10-14T06:11:11","date_gmt":"2026-10-14T11:11:11","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=248041"},"modified":"2026-10-14T06:11:11","modified_gmt":"2026-10-14T11:11:11","slug":"pythagorean-variation","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/pythagorean-variation\/","title":{"rendered":"A generalization of the Pythagorean theorem"},"content":{"rendered":"<p>G. D. Chakerian [1] discovered the following generalization of the Pythagorean theorem.<\/p>\n<p>Take any triangle and attach squares to each side. From each triangle vertex, extend a line perpendicular to the opposite side and extend the line through the square, as shown in the figure below. Then the areas of the rectangles with the same labels are equal.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium\" src=\"https:\/\/www.johndcook.com\/chakerian1.png\" width=\"400\" height=\"400\" \/><\/p>\n<p>It&#8217;s not clear at first why this is a generalization of the Pythagorean theorem, but if we make our triangle closer to a right triangle it&#8217;s easier to see the connection.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium\" src=\"https:\/\/www.johndcook.com\/chakerian2.png\" width=\"400\" height=\"400\" \/><\/p>\n<p>As the angle at B becomes closer to a right angle, the area of the orange triangles labeled II goes to zero. In the limit we&#8217;re left a theorem saying that the areas of the blue and green squares add up to the area of the square attached to the hypotenuse.<\/p>\n<p>The paper [1] caught my eye because it gives a connection between a geometry problem and a circuit problem, much like <a href=\"https:\/\/www.johndcook.com\/blog\/2023\/07\/06\/lehmans-inequality-circuits-and-latex\/\">this post<\/a>. However, I find the theorem itself more interesting than the connection to circuits.<\/p>\n<p>The first diagram is my reproduction of the first figure from the paper, with color added. I then moved the vertex A to make the connection to the Pythagorean theorem easier to see.<\/p>\n<h2>Related posts<\/h2>\n<ul>\n<li class='link'><a href='https:\/\/www.johndcook.com\/blog\/2025\/11\/13\/pythagorean-generalizations\/'>Four generalizations of the Pythagorean theorem<\/a><\/li>\n<li class='link'><a href='https:\/\/www.johndcook.com\/blog\/2025\/02\/11\/binary-triples\/'>Sparse binary Pythagorean triples<\/a><\/li>\n<li class='link'><a href='https:\/\/www.johndcook.com\/blog\/2022\/11\/30\/napoleons-theorem\/'>Napoleon\u2019s theorem<\/a><\/li>\n<\/ul>\n<p>[1] G. D. Chakerian and M. S. Klamkin. A Generalization of the Pythagorean Theorem Seen as a Problem of Equivalent Resistances. Mathematics Magazine, Vol. 59, No. 3 (Jun., 1986), pp. 149\u2013153.<\/p>\n<p>The first line of the paper is &#8220;The following result (observed several years ago by the first author) may be viewed as a generalization of the Pythagorean Theorem.&#8221; The paper also gives two other sources of the theorem. Presumably Chakerian independently discovered a theorem that was already known.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>G. D. Chakerian [1] discovered the following generalization of the Pythagorean theorem. Take any triangle and attach squares to each side. From each triangle vertex, extend a line perpendicular to the opposite side and extend the line through the square, as shown in the figure below. Then the areas of the rectangles with the same [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[224],"class_list":["post-248041","post","type-post","status-publish","format-standard","hentry","category-math","tag-geometry"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"A theorem for general triangles that reduces to the Pythagorean theorem when the triangle is a right triangle.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"geometry\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/pythagorean-variation\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"A generalization of the Pythagorean theorem\" \/>\n\t\t<meta property=\"og:description\" content=\"A theorem for general triangles that reduces to the Pythagorean theorem when the triangle is a right triangle.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/pythagorean-variation\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-14T11:11:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-14T11:11:11+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"A generalization of the Pythagorean theorem\" \/>\n\t\t<meta name=\"twitter:description\" content=\"A theorem for general triangles that reduces to the Pythagorean theorem when the triangle is a right triangle.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"A generalization of the Pythagorean theorem","description":"A theorem for general triangles that reduces to the Pythagorean theorem when the triangle is a right triangle.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/pythagorean-variation\/","robots":"max-image-preview:large","keywords":"geometry","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"A generalization of the Pythagorean theorem","og:description":"A theorem for general triangles that reduces to the Pythagorean theorem when the triangle is a right triangle.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/pythagorean-variation\/","article:published_time":"2026-10-14T11:11:11+00:00","article:modified_time":"2026-10-14T11:11:11+00:00","twitter:card":"summary","twitter:title":"A generalization of the Pythagorean theorem","twitter:description":"A theorem for general triangles that reduces to the Pythagorean theorem when the triangle is a right triangle.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"248041","title":null,"description":"A theorem for general triangles that reduces to the Pythagorean theorem when the triangle is a right triangle.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-10-14 10:45:43","updated":"2026-10-14 13:48:59","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tA generalization of the Pythagorean theorem\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog\/"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"A generalization of the Pythagorean theorem","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/pythagorean-variation\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248041","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=248041"}],"version-history":[{"count":1,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248041\/revisions"}],"predecessor-version":[{"id":248043,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248041\/revisions\/248043"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=248041"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=248041"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=248041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":248036,"date":"2026-10-14T05:00:22","date_gmt":"2026-10-14T10:00:22","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=248036"},"modified":"2026-10-14T05:03:15","modified_gmt":"2026-10-14T10:03:15","slug":"poe-bessel-and-drones","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/poe-bessel-and-drones\/","title":{"rendered":"Poe, Bessel, and Drones"},"content":{"rendered":"<p>What&#8217;s a connection between Edgar Allan Poe and Friedrich Wilhelm Bessel?<\/p>\n<p>Poe&#8217;s story The Pit and the Pendulum describes a pendulum with a semicircular blade being lowered on a cable. This is an interesting variation on the usual harmonic oscillator because the length <em>L<\/em> of the pendulum is not constant but rather an increasing function of time <em>L<\/em>(<em>t<\/em>).<\/p>\n<p>Using the <a href=\"https:\/\/www.johndcook.com\/blog\/2010\/07\/27\/sine-approximation-for-small-x\/\">small angle<\/a> approximation sin(\u03b8) \u2248 \u03b8, the equation of motion is<\/p>\n<p style=\"padding-left: 40px;\"><em>L<\/em> \u03b8\u2033 +\u00a0<em>L<\/em>\u2032 \u03b8\u2032 + <em>g<\/em> \u03b8 = 0.<\/p>\n<p>If we assume the length is increasing at a constant rate, then with a change of variables described in [1], this differential equation becomes Bessel&#8217;s equation and its solutions are Bessel functions.<\/p>\n<p>The authors of [1] state that their primary interest is whether a pendulum can have the motion that Poe describes. But as they indicate in their opening sentence,<\/p>\n<p style=\"padding-left: 40px;\">The study of the motion of a steadily descending pendulum has practical applications (e.g., to the oscillations of a load being lowered by a crane).<\/p>\n<p>A more recent application would be describing the motion of a package being delivered by a Zipline drone.<\/p>\n<h2>Related posts<\/h2>\n<ul>\n<li class=\"link\"><a href=\"https:\/\/www.johndcook.com\/blog\/2014\/07\/03\/pi-and-the-raven\/\">Pi and The Raven<\/a><\/li>\n<li class=\"link\"><a href=\"https:\/\/www.johndcook.com\/blog\/2026\/04\/25\/exact-solution-nonlinear-pendulum\/\">The nonlinear pendulum equation<\/a><\/li>\n<li class=\"link\"><a href=\"https:\/\/www.johndcook.com\/blog\/2026\/06\/06\/from-kepler-to-bessel\/\">From Kepler to Bessel<\/a><\/li>\n<\/ul>\n<p>[1] Robert L. Borrelli, Courtney S. Coleman, and Dana D. Hobson. Poe&#8217;s Pendulum. Mathematics Magazine, Vol. 58, No. 2 (Mar., 1985), pp. 78\u201383<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What&#8217;s a connection between Edgar Allan Poe and Friedrich Wilhelm Bessel? Poe&#8217;s story The Pit and the Pendulum describes a pendulum with a semicircular blade being lowered on a cable. This is an interesting variation on the usual harmonic oscillator because the length L of the pendulum is not constant but rather an increasing function [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[47,129],"class_list":["post-248036","post","type-post","status-publish","format-standard","hentry","category-math","tag-differential-equations","tag-special-functions"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"A connection between Edgar Allan Poe, Friedrich Wilhelm Bessel, and drone delivery.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"differential equations,special functions\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/poe-bessel-and-drones\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Poe, Bessel, and Drones\" \/>\n\t\t<meta property=\"og:description\" content=\"A connection between Edgar Allan Poe, Friedrich Wilhelm Bessel, and drone delivery.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/poe-bessel-and-drones\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-14T10:00:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-14T10:03:15+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Poe, Bessel, and Drones\" \/>\n\t\t<meta name=\"twitter:description\" content=\"A connection between Edgar Allan Poe, Friedrich Wilhelm Bessel, and drone delivery.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Poe, Bessel, and Drones","description":"A connection between Edgar Allan Poe, Friedrich Wilhelm Bessel, and drone delivery.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/poe-bessel-and-drones\/","robots":"max-image-preview:large","keywords":"differential equations,special functions","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Poe, Bessel, and Drones","og:description":"A connection between Edgar Allan Poe, Friedrich Wilhelm Bessel, and drone delivery.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/poe-bessel-and-drones\/","article:published_time":"2026-10-14T10:00:22+00:00","article:modified_time":"2026-10-14T10:03:15+00:00","twitter:card":"summary","twitter:title":"Poe, Bessel, and Drones","twitter:description":"A connection between Edgar Allan Poe, Friedrich Wilhelm Bessel, and drone delivery.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"248036","title":null,"description":"A connection between Edgar Allan Poe, Friedrich Wilhelm Bessel, and drone delivery.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-10-14 02:19:22","updated":"2026-10-14 11:01:11","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tPoe, Bessel, and Drones\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog\/"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"Poe, Bessel, and Drones","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/14\/poe-bessel-and-drones\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248036","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=248036"}],"version-history":[{"count":4,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248036\/revisions"}],"predecessor-version":[{"id":248040,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248036\/revisions\/248040"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=248036"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=248036"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=248036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":248028,"date":"2026-10-13T08:45:18","date_gmt":"2026-10-13T13:45:18","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=248028"},"modified":"2026-10-13T08:45:18","modified_gmt":"2026-10-13T13:45:18","slug":"harmonic-triangle","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/13\/harmonic-triangle\/","title":{"rendered":"Harmonic triangle"},"content":{"rendered":"<p>Pascal&#8217;s triangle is the most famous triangular arrangement of numbers. I&#8217;ve written about other numerical triangles, such as <a href=\"https:\/\/www.johndcook.com\/blog\/2025\/04\/16\/bell-numbers-2\/\">Bell&#8217;s triangle<\/a> and the <a href=\"https:\/\/www.johndcook.com\/blog\/2025\/05\/16\/trinomial-coefficients-and-kings\/\">trinomial triangle<\/a>. There&#8217;s another well-known triangle that somehow I never heard of until recently: the harmonic triangle, first explored by Leibniz around 1700.<\/p>\n<p>To create the harmonic triangle, start with the harmonic series<\/p>\n<p style=\"padding-left: 40px;\">1, 1\/2, 1\/3, 1\/4, 1\/5, \u2026<\/p>\n<p>This is the first column of the triangle. Next take the differences of the terms:<\/p>\n<p style=\"padding-left: 40px;\">(1 \u2212 1\/2), (1\/2 \u2212 1\/3), (1\/3 \u2212 1\/4), \u2026 = 1\/2, 1\/6, 1\/12, \u2026<\/p>\n<p>This, shifted down one space, is the second column of the triangle. Taking differences again gives the third column, and so forth. Column <em>c<\/em> of the triangle consists of the <em>c<\/em>th differences of the harmonic series.<\/p>\n<pre>    1\r\n    1\/2  1\/2\r\n    1\/3  1\/6   1\/3\r\n    1\/4  1\/12  1\/12  1\/4\r\n    1\/5  1\/20  1\/30  1\/20  1\/5\r\n    \u2026\r\n<\/pre>\n<p>Each entry is the difference of the entries to its west and northwest. If we let <em>L<\/em>(<em>r<\/em>, <em>c<\/em>) be the element in the <em>r<\/em>th row and <em>c<\/em>th column, then<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/liebniz_harmonic_triangle1.svg\" alt=\"L(r,c) = L(r-1, c-1) - L(r, c - 1)\" width=\"316\" height=\"23\" \/><\/p>\n<p>Every numerator is 1, though it&#8217;s not immediately obvious why this should be the case. And every number is a value of the beta function, the function that gives the normalizing constant for the beta distribution [1].<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/liebniz_harmonic_triangle2.svg\" alt=\"L(r,c) = \\frac{1}{r\\binom{r-1}{c-1}} = \\beta(c, r-c+1)\" width=\"282\" height=\"59\" \/><\/p>\n<h2>Related posts<\/h2>\n<ul>\n<li class='link'><a href='https:\/\/www.johndcook.com\/blog\/2025\/05\/31\/pascals-ellipse\/'>The ellipse hidden inside Pascal\u2019s triangle<\/a><\/li>\n<li class='link'><a href='https:\/\/www.johndcook.com\/blog\/2025\/07\/24\/analogs-of-binomial-coefficients\/'>Analogs of binomial coefficients<\/a><\/li>\n<li class='link'><a href='https:\/\/www.johndcook.com\/blog\/2020\/02\/04\/odd-numbers-in-pascals-triangle\/'>Odd numbers in Pascal&#8217;s triangle<\/a><\/li>\n<\/ul>\n<p>[1] Ayoub B. Ayoub. The Harmonic Triangle and the Beta Function. Mathematics Magazine, Vol. 60, No. 4 (Oct., 1987), pp. 223-225<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pascal&#8217;s triangle is the most famous triangular arrangement of numbers. I&#8217;ve written about other numerical triangles, such as Bell&#8217;s triangle and the trinomial triangle. There&#8217;s another well-known triangle that somehow I never heard of until recently: the harmonic triangle, first explored by Leibniz around 1700. To create the harmonic triangle, start with the harmonic series [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[197],"class_list":["post-248028","post","type-post","status-publish","format-standard","hentry","category-math","tag-combinatorics"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"The harmonic triangle is analogous to Pascal&#039;s triangle. First explored by Liebniz around 1700. Connection to the beta function.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"combinatorics\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/13\/harmonic-triangle\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Harmonic triangle\" \/>\n\t\t<meta property=\"og:description\" content=\"The harmonic triangle is analogous to Pascal&#039;s triangle. First explored by Liebniz around 1700. Connection to the beta function.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/13\/harmonic-triangle\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-13T13:45:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-13T13:45:18+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Harmonic triangle\" \/>\n\t\t<meta name=\"twitter:description\" content=\"The harmonic triangle is analogous to Pascal&#039;s triangle. First explored by Liebniz around 1700. Connection to the beta function.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Harmonic triangle","description":"The harmonic triangle is analogous to Pascal's triangle. First explored by Liebniz around 1700. Connection to the beta function.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/13\/harmonic-triangle\/","robots":"max-image-preview:large","keywords":"combinatorics","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Harmonic triangle","og:description":"The harmonic triangle is analogous to Pascal's triangle. First explored by Liebniz around 1700. Connection to the beta function.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/13\/harmonic-triangle\/","article:published_time":"2026-10-13T13:45:18+00:00","article:modified_time":"2026-10-13T13:45:18+00:00","twitter:card":"summary","twitter:title":"Harmonic triangle","twitter:description":"The harmonic triangle is analogous to Pascal's triangle. First explored by Liebniz around 1700. Connection to the beta function.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"248028","title":null,"description":"The harmonic triangle is analogous to Pascal's triangle. First explored by Liebniz around 1700. Connection to the beta function.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-10-13 12:42:48","updated":"2026-10-13 15:45:03","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tHarmonic triangle\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog\/"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"Harmonic triangle","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/13\/harmonic-triangle\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248028","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=248028"}],"version-history":[{"count":5,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248028\/revisions"}],"predecessor-version":[{"id":248033,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248028\/revisions\/248033"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=248028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=248028"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=248028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":248025,"date":"2026-10-12T08:04:09","date_gmt":"2026-10-12T13:04:09","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=248025"},"modified":"2026-10-12T08:04:09","modified_gmt":"2026-10-12T13:04:09","slug":"categorical-models-of-logics","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/12\/categorical-models-of-logics\/","title":{"rendered":"Categorical models of logics"},"content":{"rendered":"<p>A few days ago I wrote about <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/04\/topological-models-of-modal-logic\/\">topological models of modal logic<\/a>. If you find general topology more familiar than modal logic, this correspondence could be helpful. If you think the motivation for general topology is evident but the motivation for modal logic is suspect, the correspondence between the two fields might relieve some of your suspicion of the latter.<\/p>\n<p>Topological models, however, are quite limited. You can&#8217;t model <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/06\/godel-lob\/\">provability logic<\/a>, for example, by the usual approach to constructing topological models, though there is an alternative construction.<\/p>\n<p>Categorical models are less limited. You can model a wide variety of logics using categories via the Curry-Howard-Lambek correspondence. This may be cold comfort if you find category theory and logic equally mysterious. Even so, there&#8217;s something intriguing about a correspondence between two things you find mysterious.<\/p>\n<p>Categorical semantics is deep and broad, but I&#8217;ll keep this post brief. The correspondence between logic [1] and categories [2] is summarized in the table below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/curry_howard_lambek.svg\" alt=\"\\begin{tabular}{ll} \\hline \\textbf{Logic} &amp; \\textbf{Category theory} \\\\ \\hline Proposition \/ formula &amp; Object \\\\ Proof of \\(A\\) from \\(\\Gamma\\) &amp; Morphism \\(\\Gamma\\to A\\) \\\\ Truth \\(\\top\\) &amp; Terminal object \\(1\\) \\\\ Falsehood \\(\\bot\\) &amp; Initial object \\(0\\) \\\\ Conjunction \\(A\\land B\\) &amp; Product \\(A\\times B\\) \\\\ Disjunction \\(A\\lor B\\) &amp; Coproduct \\(A+B\\) \\\\ Implication \\(A\\to B\\) &amp; Exponential \\(B^A\\) \\\\ Negation \\(\\neg A\\) &amp; Exponential \\(0^A\\) \\\\ \\hline \\end{tabular} \" width=\"355\" height=\"219\" \/><\/p>\n<p>It&#8217;s interesting how model logic fits into this picture. Axiom K, required by normal modal logics, says<\/p>\n<p><img class='aligncenter' src='https:\/\/www.johndcook.com\/axiomk.svg' alt='\\Box(A\\to B)\\;\\longrightarrow\\;(\\Box A\\to\\Box B)' style='background-color:white' height='18' width='234' \/><\/p>\n<p>In categorial semantics, this says this says the box operator \u25a1 is a functor, mapping objects representing propositions to objects representing propositions, and mapping morphisms representing proofs to mapping morphisms representing proofs.<\/p>\n<h2>Related posts<\/h2>\n<ul>\n<li class='link'><a href='https:\/\/www.johndcook.com\/blog\/2026\/10\/08\/privacy-policies-and-modal-logic\/'>Modeling policies in modal logic<\/a><\/li>\n<li class='link'><a href='https:\/\/www.johndcook.com\/blog\/2026\/05\/06\/category-mythology\/'>The mythology of category theory<\/a><\/li>\n<li class='link'><a href='https:\/\/www.johndcook.com\/blog\/2023\/05\/22\/category-theory-without-categories\/'>Category theory without categories<\/a><\/li>\n<\/ul>\n<p>[1] More precisely, intuitionistic propositional calculus.<\/p>\n<p>[2] More precisely, bicartesian closed categories.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A few days ago I wrote about topological models of modal logic. If you find general topology more familiar than modal logic, this correspondence could be helpful. If you think the motivation for general topology is evident but the motivation for modal logic is suspect, the correspondence between the two fields might relieve some of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[144,150],"class_list":["post-248025","post","type-post","status-publish","format-standard","hentry","category-math","tag-category-theory","tag-logic"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"A very brief introduction to modeling varieties of logic by categories.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"category theory,logic\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/12\/categorical-models-of-logics\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Categorical models of logics\" \/>\n\t\t<meta property=\"og:description\" content=\"A very brief introduction to modeling varieties of logic by categories.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/12\/categorical-models-of-logics\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-12T13:04:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-12T13:04:09+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Categorical models of logics\" \/>\n\t\t<meta name=\"twitter:description\" content=\"A very brief introduction to modeling varieties of logic by categories.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Categorical models of logics","description":"A very brief introduction to modeling varieties of logic by categories.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/12\/categorical-models-of-logics\/","robots":"max-image-preview:large","keywords":"category theory,logic","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Categorical models of logics","og:description":"A very brief introduction to modeling varieties of logic by categories.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/12\/categorical-models-of-logics\/","article:published_time":"2026-10-12T13:04:09+00:00","article:modified_time":"2026-10-12T13:04:09+00:00","twitter:card":"summary","twitter:title":"Categorical models of logics","twitter:description":"A very brief introduction to modeling varieties of logic by categories.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"248025","title":null,"description":"A very brief introduction to modeling varieties of logic by categories.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-10-12 12:02:48","updated":"2026-10-12 17:08:00","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tCategorical models of logics\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog\/"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"Categorical models of logics","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/12\/categorical-models-of-logics\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=248025"}],"version-history":[{"count":2,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248025\/revisions"}],"predecessor-version":[{"id":248027,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248025\/revisions\/248027"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=248025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=248025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=248025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":248022,"date":"2026-10-08T08:43:02","date_gmt":"2026-10-08T13:43:02","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=248022"},"modified":"2026-10-08T08:43:02","modified_gmt":"2026-10-08T13:43:02","slug":"privacy-policies-and-modal-logic","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/08\/privacy-policies-and-modal-logic\/","title":{"rendered":"Privacy policies and modal logic"},"content":{"rendered":"<p>If you&#8217;ve followed this blog for a while, you may know that I do a lot of work with data privacy and that I have an interest in modal logic. Recently these two worlds collided: I became aware of work that uses modal logic to reason about data privacy.<\/p>\n<p>The story begins with Helen Nissenbaum&#8217;s paper\u00a0<em>Privacy as Contextual Integrity<\/em> [1]. Rather than simply classifying data as public or private, Nissenbaum looks at norms around the context in which data exists and moves.<\/p>\n<blockquote><p>\u2026 the benchmark of privacy is contextual integrity; that in any given situation, a complaint that privacy has been violated is sound in the event that one or the other types of the informational norms has been transgressed.<\/p><\/blockquote>\n<p>A couple years later Nissenbaum coauthored a paper [2] with three Stanford computer scientists using modal logic, specifically <strong>linear temporal logic<\/strong> (<strong>LTL<\/strong>), to reason about contextual integrity. The paper uses four modal operators: the usual box and diamond, plus past tense versions with a minus sign across the middle.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium\" src=\"https:\/\/www.johndcook.com\/ltl_operators.png\" alt=\"box, diamond, box minus, diamond minus\" width=\"270\" height=\"92\" \/><\/p>\n<p>These four operators can be read as &#8220;henceforth&#8221;, &#8220;eventually&#8221;, &#8220;historically&#8221;, and &#8220;once.&#8221;<\/p>\n<p>Henceforth means something will always be true into the future; historically means something was always true in the past.<\/p>\n<p>Eventually means something will happen at some time in the future; once means something occurred at some time in the past.<\/p>\n<p>You could imagine using these operators to formalize statements such as data sharing in some context is permissible (henceforth) if the data subject has (once) signed a consent form.<\/p>\n<p>Understanding simple stand-alone policies does not require the machinery of formal logic, but analyzing large collections of interacting policies may. It may be, for example, that a collection of policies cannot all be satisfied, though this is not obvious from looking at the individual policies. Formalizing policies in the language modal logic makes their analysis amenable to well established algorithms.<\/p>\n<h2>Related posts<\/h2>\n<ul>\n<li class=\"link\"><a href=\"https:\/\/www.johndcook.com\/blog\/2018\/10\/30\/modal-logic-security\/\">Temporal logic for cybersecurity<\/a><\/li>\n<li class=\"link\"><a href=\"https:\/\/www.johndcook.com\/blog\/2022\/01\/21\/modal-logic-and-sf\/\">Modal logic and science fiction<\/a><\/li>\n<li class=\"link\"><a href=\"https:\/\/www.johndcook.com\/blog\/data-privacy\/\">Data privacy consulting<\/a><\/li>\n<\/ul>\n<p>[1] H. Nissenbaum. Privacy as contextual integrity. Washington Law Review, 79(1):119\u2013158, 2004.<\/p>\n<p>[2] A. Barth, A. Datta, J. C. Mitchell, and H. Nissenbaum, &#8220;Privacy and contextual integrity: Framework and applications,&#8221; in Proc. 2006 IEEE Symp. Security and Privacy (S&amp;P&#8217;06), Berkeley\/Oakland, CA, USA, 2006, pp. 184\u2013198, doi: 10.1109\/SP.2006.32.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you&#8217;ve followed this blog for a while, you may know that I do a lot of work with data privacy and that I have an interest in modal logic. Recently these two worlds collided: I became aware of work that uses modal logic to reason about data privacy. The story begins with Helen Nissenbaum&#8217;s [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[150,103],"class_list":["post-248022","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-logic","tag-privacy"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"Using linear temporal logic to reason about privacy policies. Data privacy meets modal logic.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"logic,privacy\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/08\/privacy-policies-and-modal-logic\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Privacy policies and modal logic\" \/>\n\t\t<meta property=\"og:description\" content=\"Using linear temporal logic to reason about privacy policies. Data privacy meets modal logic.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/08\/privacy-policies-and-modal-logic\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-08T13:43:02+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-08T13:43:02+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Privacy policies and modal logic\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Using linear temporal logic to reason about privacy policies. Data privacy meets modal logic.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Privacy policies and modal logic","description":"Using linear temporal logic to reason about privacy policies. Data privacy meets modal logic.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/08\/privacy-policies-and-modal-logic\/","robots":"max-image-preview:large","keywords":"logic,privacy","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Privacy policies and modal logic","og:description":"Using linear temporal logic to reason about privacy policies. Data privacy meets modal logic.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/08\/privacy-policies-and-modal-logic\/","article:published_time":"2026-10-08T13:43:02+00:00","article:modified_time":"2026-10-08T13:43:02+00:00","twitter:card":"summary","twitter:title":"Privacy policies and modal logic","twitter:description":"Using linear temporal logic to reason about privacy policies. Data privacy meets modal logic.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"248022","title":null,"description":"Using linear temporal logic to reason about privacy policies. Data privacy meets modal logic.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-10-07 23:48:38","updated":"2026-10-08 20:40:41","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/uncategorized\/\" title=\"Uncategorized\">Uncategorized<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tPrivacy policies and modal logic\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog\/"},{"label":"Uncategorized","link":"https:\/\/www.johndcook.com\/blog\/category\/uncategorized\/"},{"label":"Privacy policies and modal logic","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/08\/privacy-policies-and-modal-logic\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248022","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=248022"}],"version-history":[{"count":2,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248022\/revisions"}],"predecessor-version":[{"id":248024,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248022\/revisions\/248024"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=248022"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=248022"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=248022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":248019,"date":"2026-10-07T17:29:28","date_gmt":"2026-10-07T22:29:28","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=248019"},"modified":"2026-10-07T17:29:28","modified_gmt":"2026-10-07T22:29:28","slug":"consequences-of-qrh","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/07\/consequences-of-qrh\/","title":{"rendered":"Consequences of progress toward the Riemann Hypothesis"},"content":{"rendered":"<p>The Riemann Hypothesis (RH) is the conjecture that all the zeros of the Riemann zeta function \u03b6(<em>s<\/em>) in the critical strip, i.e. the region of the complex plane with real part between 0 and 1, have real part equal to \u00bd.<\/p>\n<p>The Quasi Riemann Hypothesis (QRH) says that there exists a constant \u03b8 &lt; 1 such that no zeros of \u03b6(<em>s<\/em>) have real part greater than \u03b8. <a href=\"https:\/\/github.com\/openai\/math\/blob\/main\/preprints\/The-Quasi-Riemann-Hypothesis-September-30-2026\/paper.pdf\">OpenAI<\/a> has published a paper claiming QRH with \u03b8 = 7\/8.<\/p>\n<p>The RH is so important to number theory that even partial results can have big consequences. This post will focus on one consequence: the error term in the Prime Number Theorem.<\/p>\n<p>The Prime Number Theorem says that \u03c0(<em>x<\/em>), the number of primes less than <em>x<\/em>, is asymptotically equal to Li(<em>x<\/em>). We&#8217;d like to know more specifically at what rate \u03c0(<em>x<\/em>) approaches Li(<em>x<\/em>).<\/p>\n<p>The best known result before the QRH announcement was<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/pnt_pre_qrh.svg\" alt=\"\\pi(x) = \\operatorname{Li}(x) + {\\cal O} \\left(x \\exp\\!\\left(-c\\,\\frac{(\\log x)^{3\/5}}{(\\log\\log x)^{1\/5}}\\right)\\right) \" width=\"360\" height=\"50\" \/><\/p>\n<p>If the QRH holds for some \u03b8, such as OpenAI&#8217;s assertion that \u03b8 = 7\/8,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/pnt_qrh.svg\" alt=\"\\pi(x) = \\operatorname{Li}(x) + {\\cal O} \\left(x^\\theta\\,\\log x\\right). \" width=\"238\" height=\"36\" \/><br \/>\nIf RH holds, \u03b8 = \u00bd.<\/p>\n<p>Incidentally, you may have seen the Prime Number Theorem stated with\u00a0<em>x<\/em>\/log(<em>x<\/em>) rather than Li(<em>x<\/em>). These two functions are asymptotically equal, so they give the same theorem, if you&#8217;re not interested in quantifying the rate of convergence. The function Li(<em>x<\/em>) gives better error bounds.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Riemann Hypothesis (RH) is the conjecture that all the zeros of the Riemann zeta function \u03b6(s) in the critical strip, i.e. the region of the complex plane with real part between 0 and 1, have real part equal to \u00bd. The Quasi Riemann Hypothesis (QRH) says that there exists a constant \u03b8 &lt; 1 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[94],"class_list":["post-248019","post","type-post","status-publish","format-standard","hentry","category-math","tag-number-theory"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"Consequences of the recent announcement of a proof of the Quasi Riemann Hypothesis\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"number theory\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/07\/consequences-of-qrh\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Consequences of progress toward the Riemann Hypothesis\" \/>\n\t\t<meta property=\"og:description\" content=\"Consequences of the recent announcement of a proof of the Quasi Riemann Hypothesis\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/07\/consequences-of-qrh\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-07T22:29:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-07T22:29:28+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Consequences of progress toward the Riemann Hypothesis\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Consequences of the recent announcement of a proof of the Quasi Riemann Hypothesis\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Consequences of progress toward the Riemann Hypothesis","description":"Consequences of the recent announcement of a proof of the Quasi Riemann Hypothesis","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/07\/consequences-of-qrh\/","robots":"max-image-preview:large","keywords":"number theory","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Consequences of progress toward the Riemann Hypothesis","og:description":"Consequences of the recent announcement of a proof of the Quasi Riemann Hypothesis","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/07\/consequences-of-qrh\/","article:published_time":"2026-10-07T22:29:28+00:00","article:modified_time":"2026-10-07T22:29:28+00:00","twitter:card":"summary","twitter:title":"Consequences of progress toward the Riemann Hypothesis","twitter:description":"Consequences of the recent announcement of a proof of the Quasi Riemann Hypothesis","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"248019","title":null,"description":"Consequences of the recent announcement of a proof of the Quasi Riemann Hypothesis","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-10-07 21:54:44","updated":"2026-10-07 23:07:00","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tConsequences of progress toward the Riemann Hypothesis\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog\/"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"Consequences of progress toward the Riemann Hypothesis","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/07\/consequences-of-qrh\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=248019"}],"version-history":[{"count":1,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248019\/revisions"}],"predecessor-version":[{"id":248020,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248019\/revisions\/248020"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=248019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=248019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=248019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":248015,"date":"2026-10-07T16:41:47","date_gmt":"2026-10-07T21:41:47","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=248015"},"modified":"2026-10-07T18:35:18","modified_gmt":"2026-10-07T23:35:18","slug":"faster-fourier-transform","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/07\/faster-fourier-transform\/","title":{"rendered":"Faster Fourier Transform"},"content":{"rendered":"<p>The Fast Fourier Transform (FFT) algorithm can compute the discrete Fourier transform of a sequence of length\u00a0<em>n<\/em> in time<\/p>\n<p style=\"padding-left: 40px;\"><em>O<\/em>(<em>n<\/em> log\u00a0<em>n<\/em>).<\/p>\n<p><a href=\"https:\/\/github.com\/openai\/math\/blob\/main\/preprints\/An-explicit-power-saving-for-the-exact-discrete-Fourier-transform-September-25-2026\/main.pdf\">OpenAI<\/a> recently posted a paper saying there is an algorithm that could compute the discrete Fourier transform in<\/p>\n<p style=\"padding-left: 40px;\"><em>O<\/em>(<em>n<\/em> (log\u00a0<em>n<\/em>)<sup>1 \u2212 \u03b5<\/sup>)<\/p>\n<p>time for \u03b5 = 10<sup>\u221213<\/sup>.<\/p>\n<p>This result is amazing. It seemed that <em>O<\/em>(<em>n<\/em> log\u00a0<em>n<\/em>) was as good as you could do, which it provably is for sorting algorithms.<\/p>\n<p>The result is also of absolutely no practical value, for now. But since the theorem shows that our assumptions were wrong, however slightly, about what is possible, maybe we&#8217;re in for further surprises. Maybe the \u03b5 crack will grow. It wouldn&#8217;t be the first time.<\/p>\n<h2>Related posts<\/h2>\n<ul>\n<li class=\"link\"><a href=\"https:\/\/www.johndcook.com\/blog\/2015\/09\/08\/fft-big-data\/\">The FFT and big data<\/a><\/li>\n<li class=\"link\"><a href=\"https:\/\/www.johndcook.com\/blog\/2024\/02\/03\/fft-reciprocity\/\">FFT and quadratic reciprocity<\/a><\/li>\n<li class=\"link\"><a href=\"https:\/\/www.johndcook.com\/blog\/2023\/09\/03\/dft-numpy-mathematica\/\">DFT conventions<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The Fast Fourier Transform (FFT) algorithm can compute the discrete Fourier transform of a sequence of length\u00a0n in time O(n log\u00a0n). OpenAI recently posted a paper saying there is an algorithm that could compute the discrete Fourier transform in O(n (log\u00a0n)1 \u2212 \u03b5) time for \u03b5 = 10\u221213. This result is amazing. It seemed that [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[178],"class_list":["post-248015","post","type-post","status-publish","format-standard","hentry","category-math","tag-fourier-analysis"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"The fast Fourier transform is no longer the fastest way to compute the discrete Fourier transform, in some VERY theoretical sense.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"fourier analysis\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/07\/faster-fourier-transform\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Faster Fourier Transform\" \/>\n\t\t<meta property=\"og:description\" content=\"The fast Fourier transform is no longer the fastest way to compute the discrete Fourier transform, in some VERY theoretical sense.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/10\/07\/faster-fourier-transform\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-07T21:41:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-07T23:35:18+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Faster Fourier Transform\" \/>\n\t\t<meta name=\"twitter:description\" content=\"The fast Fourier transform is no longer the fastest way to compute the discrete Fourier transform, in some VERY theoretical sense.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Faster Fourier Transform","description":"The fast Fourier transform is no longer the fastest way to compute the discrete Fourier transform, in some VERY theoretical sense.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/07\/faster-fourier-transform\/","robots":"max-image-preview:large","keywords":"fourier analysis","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Faster Fourier Transform","og:description":"The fast Fourier transform is no longer the fastest way to compute the discrete Fourier transform, in some VERY theoretical sense.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/10\/07\/faster-fourier-transform\/","article:published_time":"2026-10-07T21:41:47+00:00","article:modified_time":"2026-10-07T23:35:18+00:00","twitter:card":"summary","twitter:title":"Faster Fourier Transform","twitter:description":"The fast Fourier transform is no longer the fastest way to compute the discrete Fourier transform, in some VERY theoretical sense.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"248015","title":null,"description":"The fast Fourier transform is no longer the fastest way to compute the discrete Fourier transform, in some VERY theoretical sense.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-10-07 21:27:22","updated":"2026-10-08 00:37:01","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tFaster Fourier Transform\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog\/"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"Faster Fourier Transform","link":"https:\/\/www.johndcook.com\/blog\/2026\/10\/07\/faster-fourier-transform\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=248015"}],"version-history":[{"count":4,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248015\/revisions"}],"predecessor-version":[{"id":248021,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/248015\/revisions\/248021"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=248015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=248015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=248015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]