Civil Rights
Movements, leaders, victories and the continuing fight for equality.
Explore the people, places, events, achievements, struggles and stories that shaped our journey.
Movements, leaders, victories and the continuing fight for equality.
Innovation, patents, science, technology and world-changing contributions.
Pioneers, champions, Negro Leagues, records, activism and excellence.
Meet the people whose lives, choices and achievements shaped the journey.
Black towns, communities, institutions and places where history happened.
Moments that changed communities, movements, institutions and the nation.
Mansa Musa was the ruler of the Mali Empire in West Africa. Details recorded here should be sourced; unknown information is left blank.
MORE →Reflects the personal views, recollections, and perspective of the author, Mike Davis.
This is a personal recollection on the Move fire on May 13, 1985
The refinement calculus is a formalized approach to stepwise refinement for program construction. The required behaviour of the final executable program is specified as an abstract and perhaps non-executable "program", which is then refined by a series of correctness-preserving transformations into an efficiently executable program.[1]
Proponents include Ralph-Johan Back, who originated the approach in his 1978 PhD thesis On the Correctness of Refinement Steps in Program Development, and Carroll Morgan, especially with his book Programming from Specifications (Prentice Hall, 2nd edition, 1994, ISBN 0-13-123274-6). In the latter case, the motivation was to link Abrial's specification notation Z, via a rigorous relation of behaviour-preserving program refinement, to an executable programming notation based on Dijkstra's language of guarded commands. Behaviour-preserving in this case means that any Hoare triple satisfied by a program should also be satisfied by any refinement of it, which notion leads directly to specification statements as pre- and postconditions standing, on their own, for any program that could soundly be placed between them.
Source: Wikipedia. Article content is retrieved live through the MediaWiki API.
The refinement calculus is a formalized approach to stepwise refinement for program construction. The required behaviour of the final executable program is specified as an abstract and perhaps non-executable "program", which is then refined by a series of correctness-preserving transformations into an efficiently executable program. Proponents include Ralph-Johan Back, who originated the approach in his 1978 PhD thesis On the Correctness of Refinement Steps in Program Development, and Carroll Morgan, especially with his book Programming from Specifications (Prentice Hall, 2nd edition, 1994, ISBN 0-13-123274-6). In the latter case, the motivation was to link Abrial's specification notation Z, via a rigorous relation of behaviour-preserving program refinement, to an executable programming notation based on Dijkstra's language of guarded commands. Behaviour-preserving in this case means that any Hoare triple satisfied by a program should also be satisfied by any refinement of it, which notion leads directly to specification statements as pre- and postconditions standing, on their own, for any program that could soundly be placed between them.
A program transformation is any operation that takes a computer program and generates another program. In many cases the transformed program is required to be semantically equivalent to the original, relative to a particular formal semantics and in fewer cases the transformations result in programs that semantically differ from the original in predictable ways. While the transformations can be performed manually, it is often more practical to use a program transformation system that applies specifications of the required transformations. Program transformations may be specified as automated procedures that modify compiler data structures (e.g. abstract syntax trees) representing the program text, or may be specified more conveniently using patterns or templates representing parameterized source code fragments. A practical requirement for source code transformation systems is that they be able to effectively process programs written in a programming language. This usually requires integration of a full front-end for the programming language of interest, including source code parsing, building internal program representations of code structures, the meaning of program symbols, useful static analyses, and regeneration of valid source code from transformed program representations. The problem of building and integrating adequate front ends for conventional languages (Java, C++, PHP etc.) may be of equal difficulty as building the program transformation system itself because of the complexity of such languages. To be widely useful, a transformation system must be able to handle many target programming languages, and must provide some means of specifying such language-specific front-ends. Spoon is an example of a Java-specific program transformation library that addresses this challenge by providing a full front-end for Java, exposing an AST-based API for implementing analyses and transformations of Java source code. A generalisation of semantic equivalence is the notion of program refinement: one program is a refinement of another if it terminates on all the initial states for which the original program terminates, and for each such state it is guaranteed to terminate in a possible final state for the original program. In other words, a refinement of a program is more defined and more deterministic than the original program. If two programs are refinements of each other, then the programs are equivalent.
Counterexample-guided abstraction refinement (CEGAR) is a technique for symbolic model checking. It is also applied in modal logic tableau calculi algorithms to optimise their efficiency. In computer-aided verification and analysis of programs, models of computation often consist of states. Models for even small programs, however, may have an enormous number of states. This is identified as the state explosion problem. CEGAR addresses this problem with two stages — abstraction, which simplifies a model by grouping states, and refinement, which increases the precision of the abstraction to better approximate the original model. If a desired property for a program is not satisfied in the abstract model, a counterexample is generated. The CEGAR process then checks whether the counterexample is spurious, i.e., if the counterexample also applies to the under-abstraction but not the actual program. If this is the case, it concludes that the counterexample is attributed to inadequate precision of the abstraction. Otherwise, the process finds a bug in the program. Refinement is performed when a counterexample is found to be spurious. The iterative procedure terminates either if a bug is found or when the abstraction has been refined to the extent that it is equivalent to the original model.
The nuclear program of Iran consists of an extensive infrastructure of research sites, uranium mines, research reactors, uranium processing facilities, enrichment sites, the Bushehr Nuclear Power Plant (the country’s sole operational power reactor, currently expanding with two additional units), and the developing Darkhovin Nuclear Power Plant in Khuzestan. The program’s research capabilities are anchored by several facilities, most notably the Tehran Research Reactor and the heavy water reactor at Khondab. Iran's uranium processing infrastructure is centered in Isfahan, which serves as a hub for conversion and fuel fabrication, while primary enrichment activities are conducted at Natanz, Fordow, and within the Isfahan complex. Iran’s stated objective is a self-sufficient nuclear energy cycle to diversify its power grid and produce medical radioisotopes, citing a legal right to peaceful technology under the Non-Proliferation Treaty (NPT). While viewed as a cornerstone of Iranian technological nationalism, the program has been the subject of a decades-long diplomatic and military standoff, particularly with the United States and Israel, culminating in large-scale conflicts in 2025 and 2026. The program began in 1957 as part of the US-led Atoms for Peace initiative and expanded significantly during the 1970s under the Pahlavi era, which saw the start of the Bushehr project with Western assistance. Following the 1979 Iranian Revolution, the program was initially deprioritized but was revived in the late 1980s. During the 1990s and early 2000s, Iran developed several undeclared sites, which were identified by international observers in 2002 and 2009. Following the collapse of negotiations with the EU-3 in 2005, the International Atomic Energy Agency (IAEA) Board of Governors found Iran in non-compliance with its NPT safeguards agreement, leading the United Nations Security Council (UNSC) to pass a series of resolutions between 2006 and 2010 demanding a suspension of Iran's enrichment-related activities and targeting Iran’s banking, trade, and energy sectors. While Western intelligence agencies assessed that a dedicated weaponization project, the AMAD Project, was discontinued in 2003, Iran's ongoing enrichment activities led to a decades-long cycle of international sanctions and a sustained campaign of covert sabotage, including the 2009 Stuxnet cyberattack, multiple assassinations of Iranian nuclear scientists, and strikes on facilities in 2020 and 2021, which Iran characterized as "nuclear terrorism." In 2015, the Joint Comprehensive Plan of Action (JCPOA) was signed by Iran, China, France, Russia, the United Kingdom, the US, and Germany, under which Iran agreed to strict enrichment limits and extensive international monitoring at its nuclear facilities in exchange for sanctions relief. Although the JCPOA briefly stabilized the situation, this period of oversight ended in 2018 following the unilateral withdrawal of the United States and the subsequent "Maximum Pressure" campaign. In response to the US withdrawal, and citing ongoing acts of US and Israeli sabotage, Iran incrementally reduced its compliance and raised enrichment levels to 60%, a move the Iranian government characterized as diplomatic leverage to secure the removal of reinstated sanctions. In August 2025, France, Germany, and the UK triggered the snapback mechanism, reinstating UN sanctions; that October, Iran, Russia, and China declared they viewed JCPOA terminated and the UN sanctions legally void. The standoff escalated into direct military conflict with the Twelve-Day War in June 2025 and a larger joint U.S.-Israeli campaign in February 2026 targeting nuclear and ballistic missile infrastructure. These strikes, which included the assassination of high-ranking Iranian officials, were justified by the U.S. and Israel as preemptive measures to prevent a nuclear breakout. Following a Pakistan-mediated ceasefire in April 2026, the parties entered high-level negotiations in Islamabad. However, a lasting settlement remains elusive; while the U.S. has demanded a permanent end to all uranium enrichment, Iran maintains its legal right to a civilian program. Analysts remain divided on the long-term impact of the conflict, debating whether the physical damage has permanently delayed the program or instead incentivized a transition from nuclear latency to the pursuit of a completed deterrent.
Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.
MORE →Madam C.J. Walker