<node id="678545">
  <nid>678545</nid>
  <type>event</type>
  <uid>
    <user id="27707"><![CDATA[27707]]></user>
  </uid>
  <created>1732050179</created>
  <changed>1732050215</changed>
  <title><![CDATA[PhD Defense by Shuo Ding]]></title>
  <body><![CDATA[<p><strong>Title:</strong>&nbsp;Witness Functions in Program Analysis and Complexity Theory</p><p><strong>Date:</strong>&nbsp;Tuesday, December 3, 2024</p><p><strong>Time:</strong>&nbsp;12:30 PM - 2:30 PM (Eastern Time)</p><p><strong>Location (in-person):</strong>&nbsp;Klaus 1202</p><p><strong>Location (virtual):</strong> <a href="https://gatech.zoom.us/j/7018521505?pwd=jNYOdyOpgwfe3px8plpgbkgS0Rdajf.1">https://gatech.zoom.us/j/7018521505?pwd=jNYOdyOpgwfe3px8plpgbkgS0Rdajf.1</a></p><p>&nbsp;</p><p>Shuo Ding</p><p>School of Computer Science</p><p>Georgia Tech</p><p>&nbsp;</p><p><strong>Committee</strong></p><p>Dr. Qirun Zhang (Advisor) - School of Computer Science, Georgia Tech</p><p>Dr. Suguman Bansal - School of Computer Science, Georgia Tech</p><p>Dr. Vijay Ganesh - School of Computer Science, Georgia Tech</p><p>Dr. Jens Palsberg - Computer Science Department, UCLA</p><p>Dr. Vivek Sarkar - School of Computer Science, Georgia Tech</p><p>&nbsp;</p><p><strong>Abstract</strong></p><p>Proving impossibility results is one of the main themes of program analysis theory and computability/complexity theory. For example, we can prove a program analysis problem is undecidable, meaning that there does not exist an algorithm to precisely solve the problem. As another example, we can prove a problem does not belong to a complexity class, meaning that every correct algorithm for the problem must exceed the given resource restriction. In general, given a class C of computational problems and a specific computational problem P not in C, a witness function maps every candidate Q in C to an input on which P and Q are different.</p><p>We investigate the computational properties of such witness functions and discuss their implications. In program analysis theory, we prove that a large class of undecidable program analysis problems have computable witness functions, including every semantic property described in Rice's theorem. This implies the existence of computable functions mapping a program analyzer to a more precise program analyzer. Through two real program analysis tasks (1) CFL-reachability based program analysis for Java and LLVM-IR and (2) template constraint analysis for C++, we demonstrate that computable witness functions provide guarantees on the progress of developing more and more precise program analysis techniques. In complexity theory, we prove that witness functions for major complexity classes are closely related to reductions, and use the time/space hierarchy theorem as an example to discuss further implications in complexity class separation proofs.</p>]]></body>
  <field_summary_sentence>
    <item>
      <value><![CDATA[Witness Functions in Program Analysis and Complexity Theory]]></value>
    </item>
  </field_summary_sentence>
  <field_summary>
    <item>
      <value><![CDATA[<p>Witness Functions in Program Analysis and Complexity Theory</p>]]></value>
    </item>
  </field_summary>
  <field_time>
    <item>
      <value><![CDATA[2024-12-03T12:30:00-05:00]]></value>
      <value2><![CDATA[2024-12-03T14:30:17-05:00]]></value2>
      <rrule><![CDATA[]]></rrule>
      <timezone><![CDATA[America/New_York]]></timezone>
    </item>
  </field_time>
  <field_fee>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_fee>
  <field_extras>
      </field_extras>
  <field_audience>
          <item>
        <value><![CDATA[Public]]></value>
      </item>
      </field_audience>
  <field_media>
      </field_media>
  <field_contact>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_contact>
  <field_location>
    <item>
      <value><![CDATA[Klaus 1202]]></value>
    </item>
  </field_location>
  <field_sidebar>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_sidebar>
  <field_phone>
    <item>
      <value><![CDATA[]]></value>
    </item>
  </field_phone>
  <field_url>
    <item>
      <url><![CDATA[]]></url>
      <title><![CDATA[]]></title>
            <attributes><![CDATA[]]></attributes>
    </item>
  </field_url>
  <field_email>
    <item>
      <email><![CDATA[]]></email>
    </item>
  </field_email>
  <field_boilerplate>
    <item>
      <nid><![CDATA[]]></nid>
    </item>
  </field_boilerplate>
  <links_related>
      </links_related>
  <files>
      </files>
  <og_groups>
          <item>221981</item>
      </og_groups>
  <og_groups_both>
          <item><![CDATA[Graduate Studies]]></item>
      </og_groups_both>
  <field_categories>
          <item>
        <tid>1788</tid>
        <value><![CDATA[Other/Miscellaneous]]></value>
      </item>
      </field_categories>
  <field_keywords>
          <item>
        <tid>100811</tid>
        <value><![CDATA[Phd Defense]]></value>
      </item>
      </field_keywords>
  <field_userdata><![CDATA[]]></field_userdata>
</node>
