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.
Wilmington, North Carolina once had a thriving Black middle class and an elected interracial government. In 1898 white supremacists used violence to overthrow that government, kill Black residents and drive many others from the city.
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 B-Method is a method of software development based on B, a tool-supported formal method based on an abstract machine notation, used in the development of computer software.[1][2]
Compared to the Z notation, B is slightly more low-level and more focused on refinement to code rather than just formal specification — hence it is easier to correctly implement a specification written in B than one in Z. In particular, there is good tool support for this. The same language is used in specification, design, and programming. Mechanisms include encapsulation and data locality.

B was originally developed in the 1980s by Jean-Raymond Abrial[3][4] in France and the UK.[5] B is related to the Z notation (also originated by Abrial) and supports the development of programming language code from specifications. B has been used in major safety-critical system applications in Europe (such as the automatic Paris Métro lines 14 and 1 and the Ariane 5 rocket).[6][7][8] It has robust, commercially available tool support for specification, design, proof and code generation.

From the late 1980s, Ib Holm Sørensen (1949–2012) was central to the development of the B-Method,[9][10] having previously also worked on the early development of the Z notation. He left the Oxford University Computing Laboratory to lead a team for BP Research[11] and to develop the B-Toolkit, providing tool support for the B-Method. Subsequently, he founded the company B-Core (UK) Limited to support the B-Toolkit,[12][13] which is a collection of programming tools designed to support the use of the B notation, and he helped to complete a number of B-related projects.
Subsequently, another formal method called Event-B[14][15][16] has been developed based on the B-Method, supported by the Rodin Platform.[17][18] Event-B is a formal method aimed at system-level modelling and analysis. Features of Event-B are the use of set theory for modelling, the use of refinement to represent systems at different levels of abstraction, and the use of mathematical proof for verifying consistency between these refinement levels.
The B notation depends on set theory and first order logic to specify different levels of software description covering the complete cycle of project development.
In the first and the most abstract version, which is called the Abstract Machine, the designer should specify the goal of the design.
There are a number of software supporting the B-Method and Event-B.
Developed by ClearSy, Atelier B[19][20] is an industrial tool that allows for the operational use of the B Method to develop defect-free, proven software (formal software). Two versions are available: 1) Community Edition, available to anyone without any restriction; 2) Maintenance Edition for maintenance contract holders only. Atelier B has been used to develop safety automatisms for the various subways installed throughout the world by Alstom and Siemens, and also for Common Criteria certification and the development of system models by ATMEL and STMicroelectronics.
The B-Toolkit[21][22] is a collection of programming tools designed to support the use of the B-Tool,[23] is a set theory-based mathematical interpreter for the purposes of supporting the B-Method. Development was originally undertaken by Ib Holm Sørensen and others, at BP Research and then at B-Core (UK) Limited.[10]
The toolkit uses a custom X Window Motif Interface[24] for GUI management and runs primarily on the Linux, Mac OS X and Solaris operating systems. The B-Toolkit source code is available on GitHub.[25]

The Click'n'Prove tool provides an environment for the generation and discharge of proof obligations, for consistency and refinement checking.[26]
ProB is a combined software animation tool and model checker for the B-Method.[27] It enables the animation of many B specifications, and can also systematically check a specification for several types of errors. ProB includes constraint-solving facilities that can be used to aid in deadlock checking, model discovery, and test-case generation. The tool is developed by the STUPS group at the Heinrich Heine University Düsseldorf.[28]
The Rodin Platform is a tool that supports Event-B.[14][29][17] Rodin is based on an Eclipse software IDE (integrated development environment) and provides support for refinement and mathematical proof. The platform is open source and forms part of the Eclipse framework. It is extendable using software component plug-ins. The development of Rodin has been supported by the European Union projects DEPLOY (2008–2012), RODIN (2004–2007), and ADVANCE (2011–2014).[14]
BHDL provides a method for the correct design of digital circuits, combining the advantages of the hardware description language VHDL with the formality of B.[30]
APCB (French: Association de Pilotage des Conférences B, the International B Conference Steering Committee) has organized meetings associated with the B-Method.[31] It has organized ZB conferences with the Z User Group and ABZ conferences, including Abstract State Machines (ASM) as well as the Z notation.
The following conferences have explicitly included the B-Method and/or Event-B:[32]
Source: Wikipedia. Article content is retrieved live through the MediaWiki API.
The B-Method is a method of software development based on B, a tool-supported formal method based on an abstract machine notation, used in the development of computer software. Compared to the Z notation, B is slightly more low-level and more focused on refinement to code rather than just formal specification — hence it is easier to correctly implement a specification written in B than one in Z. In particular, there is good tool support for this. The same language is used in specification, design, and programming. Mechanisms include encapsulation and data locality.
Tukey's B method, also known as the Tukey-Kramer B procedure, or Tukey's Wholly Significant Difference (WSD) is a post-hoc multiple comparison statistical test used to identify which specific group means differ significantly from each other after a statistically significant result has been obtained from an analysis of variance (ANOVA). It is considered a compromise between two other popular multiple comparison procedures: Tukey's range test and the Newman-Keuls method. The primary purpose of post-hoc tests like Tukey's B is to control the family-wise error rate (FWER) when performing multiple comparisons. Without such control, the probability of making at least one Type I error increases with the number of comparisons made.
The erlang (symbol E) is a dimensionless unit that is used in telephony as a measure of offered load or carried load on service-providing elements such as telephone circuits or telephone switching equipment. A single cord circuit has the capacity to be used for 60 minutes in one hour. Full utilization of that capacity, 60 minutes of traffic, constitutes 1 erlang. Carried traffic in erlangs is the average number of concurrent calls measured over a given period (often one hour), while offered traffic is the traffic that would be carried if all call-attempts succeeded. How much offered traffic is carried in practice will depend on what happens to unanswered calls when all servers are busy. The CCITT named the international unit of telephone traffic the erlang in 1946 in honor of Agner Krarup Erlang. In Erlang's analysis of efficient telephone line usage, he derived the formulae for two important cases, Erlang-B and Erlang-C, which became foundational results in teletraffic engineering and queueing theory. His results, which are still used today, relate quality of service to the number of available servers. Both formulae take offered load as one of their main inputs (in erlangs), which is often expressed as call arrival rate times average call length. A distinguishing assumption behind the Erlang B formula is that there is no queue, so that if all service elements are already in use then a newly arriving call will be blocked and subsequently lost. The formula gives the probability of this occurring. In contrast, the Erlang C formula provides for the possibility of an unlimited queue and it gives the probability that a new call will need to wait in the queue due to all servers being in use. Erlang's formulae apply quite widely, but they may fail when congestion is especially high causing unsuccessful traffic to repeatedly retry. One way of accounting for retries when no queue is available is the Extended Erlang B method.
The Condorcet or majority-rule methods (English: ; French: [kɔ̃dɔʁsɛ]) are a family of election systems that elect the majority-preferred (Condorcet) winner if one exists. A majority-preferred candidate is a candidate who would win a majority of votes in any head-to-head election against any opponent. In other words, they are a candidate who would win in any one-on-one race (one without spoilers). The head-to-head elections need not be done separately; a voter's choice within any given pair can be determined from the ranking. Some elections may not have a Condorcet winner because the majority's preferences can be cyclic: in other words, it is possible every candidate has an opponent that would defeat them in a two-candidate contest. This is similar to a game of rock, paper, scissors: a candidate "scissors" may beat "paper," but still lose to "rock". The possibility of such a cycle is known as Condorcet's paradox. (Empirically, however, such cycles are rare, with most large public elections having a Condorcet winner. As a result, all Condorcet methods reduce to simple majority rule in most cases.) Under many models of voting, the Condorcet winner is typically the same as the socially optimal winner. However, this is not guaranteed to be the case; situations where the two disagree are commonly called tyranny of the majority scenarios (particularly if the disagreement is large). Condorcet voting methods are named for the 18th-century French mathematician, the Marquis de Condorcet, who popularized the concept. Condorcet methods were first extensively analyzed by Ramon Llull, but the manuscripts of these works were lost from the Late Middle Ages until being rediscovered in the 20th century. Condorcet methods are commonly used to vote on motions and amendments in assemblies and legislatures, as they allow replacing paper ballots with a series of simple majority votes, with prominent parliamentary procedure handbooks such as Jefferson's Manual and Robert's Rules of Order prescribing their use. However, public elections typically use ranked ballots to avoid the time and complexity of a full round-robin tournament with each voter's choice in a paired matchup being determined by checking which candidate has the higher rank or rating on a ballot. In a contest between candidates A, B and C using the preferential-vote form of Condorcet method, a head-to-head race is conducted between each pair of candidates. A and B, B and C, and C and A. If one candidate is preferred over all others, they are the Condorcet Winner and winner of the election. Because of the possibility of the Condorcet paradox, it is possible (but empirically rare) that a Condorcet winner does not exist in a specific election. This is sometimes called a Condorcet cycle or just cycle and can be thought of as Rock beating Scissors, Scissors beating Paper, and Paper beating Rock. Various Condorcet methods differ in how they resolve such a cycle. (Most elections do not have cycles. See Condorcet paradox#Likelihood for estimates.) If there is no cycle, all Condorcet methods elect the same candidate and are operationally equivalent. Each voter ranks the candidates in order of preference (top-to-bottom, or best-to-worst, or 1st, 2nd, 3rd, etc.). The voter may be allowed to rank candidates as equals and to express indifference (no preference) between them. Candidates omitted by a voter may be treated as if the voter ranked them at the bottom. For each pairing of candidates (as in a round-robin tournament) count how many votes rank each candidate over the other candidate. Thus each pairing will have two totals: the size of its majority and the size of its minority (or there will be a tie). For most Condorcet methods, those counts usually suffice to determine the complete order of finish (i.e. who won, who came in 2nd place, etc.). They always suffice to determine whether there is a Condorcet winner. Additional information may be needed in the event of ties. Ties can be pairings that have no majority, or they can be majorities that are the same size. Such ties will be rare when there are many voters. Some Condorcet methods may have other kinds of ties. For example, with Copeland's method, it would not be rare for two or more candidates to win the same number of pairings, when there is no Condorcet winner.
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 →Joe Louis.