{"id":341,"date":"2007-03-11T09:20:15","date_gmt":"2007-03-11T09:20:15","guid":{"rendered":"http:\/\/scientopia.org\/blogs\/goodmath\/2007\/03\/11\/basics-going-meta\/"},"modified":"2007-03-11T09:20:15","modified_gmt":"2007-03-11T09:20:15","slug":"basics-going-meta","status":"publish","type":"post","link":"http:\/\/www.goodmath.org\/blog\/2007\/03\/11\/basics-going-meta\/","title":{"rendered":"Basics: Going Meta"},"content":{"rendered":"<p> In math and computer science, we have a tendency to talk about &#8220;going meta&#8221;. It&#8217;s actually a<br \/>\npretty simple idea, which tends to crop up in other places, as well. It&#8217;s also one of my favorite concepts &#8211; the idea of going meta is just plain cool. (Not to mention useful. There&#8217;s a running joke among computer scientists that the solution to any problem is to add a level of indirection &#8211; which is programmer-speak for going meta on constructs inside of a  programming language.  Object-orientation is, in some sense, just an example of how to go meta on procedures. Haskell type-classes are an example of going meta on types.) <\/p>\n<p> Going meta basically means taking a step back, and instead of talking about some subject X, you talk about talking about X. <\/p>\n<p><!--more--><\/p>\n<p> For example, we can talk about numbers. We can make statements about specific numbers &#8211; for example, &#8220;4&lt;6&#8221;.  We can make general statements about all numbers: &#8220;For all numbers x, there are an infinite number of numbers larger than x&#8221;. Those are both basic ground-level statements about<br \/>\nnumbers.   Going meta is shifting from talking about numbers to talking about talking about numbers. So most of this paragraph is actually meta-discussion about numbers: it&#8217;s talking about <em>how we can talk about<\/em> numbers. And we can meta many times if we want &#8211; for example, the previous sentence went meta on the  meta &#8211; it talked about how we were talking about talking about numbers; and this sentence went even more meta, by talking about the sentence where we were talking about talking about numbers. <\/p>\n<p> In a slightly more formal mode, think about standard, <a href=\"http:\/\/scientopia.org\/blogs\/goodmath\/2007\/01\/basics-logic-aka-its-illogical-to-call-mr-spock-logical\">first order predicate logic<\/a>. In first order logic, we have a set of <em>objects<\/em> that we can talk about. We make statements about<br \/>\nthose objects using <em>predicates<\/em>. We can make statements about <em>specific<\/em> objects by referring to them directly in a predicate &#8211; for example, &#8220;<code>HasBigNose(MarkCC)<\/code>&#8220;. We can make general statements by introducing variables using quantifiers, and making statements in terms of those variables: &#8220;<code>&forall; x: HasBigNose(x) &rArr; SneezesLoudly(x)<\/code>&#8220;. But we can&#8217;t talk about <em>predicates<\/em> using first order logic &#8211; predicates are fixed things, and there&#8217;s no way to make a statement <em>about a predicate<\/em> in first order logic &#8211; we can&#8217;t say that the predicate &#8220;HasBigNose&#8221; is a member of the set of really silly predicates &#8211; there&#8217;s no way to refer to the predicate that would allow us to say that.<\/p>\n<p> But we can go meta &#8211; and jump to <em>second order<\/em> predicate logic. In second order predicate logic, first order predicates can be treated as objects that can be reasoned about. So we can have second-order predicates that talk about first-order predicates: &#8220;<code>IsSillyPredicate(HasBigNose)<\/code>&#8220;.<\/p>\n<p> The fundamental source of meta in most modern math is set theory. Early efforts to use<br \/>\nset theory as a unifying basis for mathematics encountered a serious problem: set theory<br \/>\nwas discovered to include paradoxical constructs. The most canonical example is <em>the<\/em> classic paradoxical statement: <a href=\"http:\/\/en.wikipedia.org\/wiki\/Russell%27s_paradox\">Russell&#8217;s paradox<\/a>, which  is a statement about the set R={x | x&notin;x} &#8211; that is, the set of all sets that do <em>not<\/em> contain themselves as a member. Is R an element of R?<\/p>\n<p> The problem with Russell&#8217;s paradox is pretty obvious when you walk it through. Is R a member of itself? Suppose that R is a member of itself. Then by the definition of R, since R&isin;R, that means that it&#8217;s not a member of itself. Suppose it&#8217;s not a member of itself &#8211; then by the definition of R, it <em>is<\/em> a member of itself. So no matter what we do, we have a contradiction: if R is in itself, that leads to the inference that it&#8217;s not in itself, and vice versa.<\/p>\n<p> The attempts to solve that work by creating a strict separation of levels &#8211; that is, separating<br \/>\nbase from meta. For example, <a href=\"http:\/\/en.wikipedia.org\/wiki\/Von_Neumann-Bernays-G%C3%B6del_axioms\">von Neumann&#8217;s version of<br \/>\nthe solution<\/a>, called NBG (von Neumann-Bernays-G&ouml;del) set theory, is to take the idea of a<br \/>\ncollection of stuff, and separate it into two different kinds of things: <em>classes<\/em> and<br \/>\n<em>sets<\/em>. A class is <em>any<\/em> collection of things which can be defined by some property<br \/>\nheld by all of its members. A set is a class which is a member of some other class. Thus, a class<br \/>\nis a sort of meta-set: it&#8217;s a kind of set which can contain other sets &#8211; but by making the<br \/>\nseparation between classes and sets, we&#8217;ve created a sort of fire-break that prevents things like<br \/>\nRussell&#8217;s paradox from working. In this construct, Russell&#8217;s set becomes Russell&#8217;s <em>class<\/em>;<br \/>\nthere&#8217;s no consistent statement of Russell&#8217;s class that can allow it to be a member of a set; and<br \/>\nso the paradox (seems to) disappear. So von Neumann and friends temporarily defeated Russell&#8217;s<br \/>\nparadox by introducing one level of meta into set theory.<\/p>\n<p> The multi-level meta-junk grew out the great effort of early 20th century math &#8211; the <a href=\"http:\/\/scientopia.org\/blogs\/goodmath\/2006\/06\/extreme-math-1--1--2\">Principia of Russell and Whitehead<\/a>. They, along with many others, tried to create a perfect formal basis for mathematics. In their construction of math, everything was part of a strict hierarchy, where the meta-levels were absolutely separated from each other, and you could never find any way to formulate a statement in an nth-order logic that could be interpreted as a statement <em>about<\/em> an n-th order logic.<\/p>\n<p> As we&#8217;ve mentioned before, G&ouml;del blew that out of the water &#8211; it&#8217;s impossible to create that perfect, strict separation between the meta-layers. If you have a first-order logic that&#8217;s capable enough to express Peano arithmetic, then you have a logic that&#8217;s capable of being abused into formulating 2nd order statements by <em>encoding<\/em> statements into numbers, and writing statements (as numbers) about the numbers that encode statements &#8211; giving you a logic embedded in your first order logic in which you can both write any first-order statement, and <em>also<\/em> second-order statements &#8211; thus collapsing the meta-heirarchy of logic collapses.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In math and computer science, we have a tendency to talk about &#8220;going meta&#8221;. It&#8217;s actually a pretty simple idea, which tends to crop up in other places, as well. It&#8217;s also one of my favorite concepts &#8211; the idea of going meta is just plain cool. (Not to mention useful. There&#8217;s a running joke [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[74],"tags":[],"class_list":["post-341","post","type-post","status-publish","format-standard","hentry","category-basics"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p4lzZS-5v","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/posts\/341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/comments?post=341"}],"version-history":[{"count":0,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/posts\/341\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/media?parent=341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/categories?post=341"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/tags?post=341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}